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
1
1
3
7
7
9
9
10
10
11
11
18
22
22
2
2
2
4
7
7
7
7
7
8
8
8
10
10
10
11
19
23
23
3
3
3
7
7
7
7
7
8
8
9
9
9
10
10
11
20
24
24
1
1
1
3
4
4
7
7
7
7
7
7
8
9
9
10
10
10
10
11
11
21
25
25
1
1
1
2
4
5
5
5
6
7
7
8
8
9
9
9
10
10
10
10
10
11
11
11
22
26
26
1
2
2
2
3
3
5
6
6
6
6
6
7
9
9
10
11
11
11
11
11
12
23
25
25
27
27
2
3
3
4
6
6
7
7
7
7
7
7
7
8
9
10
10
10
10
10
11
12
13
24
26
26
28
28
1
3
4
4
5
5
5
5
6
7
8
8
8
8
8
8
8
8
9
9
9
10
10
11
12
13
13
14
25
27
27
29
1
1
3
5
6
6
6
7
7
7
8
8
8
8
8
9
9
9
9
9
9
10
10
10
11
11
12
13
14
14
26
28
28
30
1
2
6
6
6
7
7
7
7
8
8
10
10
10
10
10
10
10
11
11
11
12
12
13
13
13
14
27
29
31
1
1
2
3
5
7
7
7
7
8
8
8
9
11
11
11
11
11
11
12
12
14
14
15
28
30
32
1
2
4
6
7
7
7
7
7
8
8
9
9
9
10
11
11
11
12
13
13
13
15
16
29
31
33
1
3
7
7
8
9
9
10
10
11
11
11
11
11
11
12
12
12
14
14
14
14
14
16
16
17
17
32
34
1
7
7
7
9
10
10
11
11
11
11
11
12
13
13
13
14
14
15
15
16
17
17
17
17
26
30
33
33
35
35
1
7
7
7
7
7
7
8
8
8
10
10
11
11
11
11
12
12
13
13
13
14
14
14
14
14
16
16
16
17
27
31
34
34
36
36
7
7
8
8
9
9
9
10
10
11
12
13
14
14
17
17
17
18
28
32
35
35
37
37
1
1
9
9
10
11
11
11
12
13
14
14
16
18
18
18
19
29
33
36
36
38
38
1
1
7
7
7
10
10
10
11
12
12
12
13
13
13
15
16
17
19
19
19
20
34
39
39
1
1
7
7
7
7
7
7
7
8
8
8
10
11
13
13
14
14
14
16
16
17
20
20
20
35
40
40
1
1
1
2
7
7
8
8
9
9
9
10
10
11
13
14
14
15
15
17
17
21
21
36
41
41
1
3
7
7
9
9
10
10
11
11
12
12
12
13
13
14
16
18
19
19
19
22
22
37
42
42
1
2
4
7
7
7
7
7
8
8
8
10
10
10
11
13
13
13
14
14
14
16
16
19
19
20
20
20
23
23
38
43
43
3
7
7
7
7
7
8
8
9
9
9
10
10
11
14
15
15
17
17
20
20
24
24
39
44
44
1
1
1
1
7
7
7
7
7
7
8
9
9
10
10
10
10
11
11
13
14
15
16
16
21
25
25
40
45
45
1
1
1
2
7
7
8
8
9
9
9
10
10
10
10
10
11
11
11
12
12
13
13
14
14
14
19
19
19
22
26
26
41
46
46
1
1
2
2
3
9
9
10
11
11
11
11
11
12
13
13
13
14
14
14
16
16
19
20
20
20
23
25
25
27
27
42
47
47
1
2
2
3
3
4
9
10
10
10
10
10
11
12
13
13
14
14
15
15
17
17
20
24
26
26
28
28
43
48
48
2
3
3
4
4
7
7
7
7
7
8
8
9
9
10
10
11
11
12
12
12
13
13
13
14
14
15
16
16
19
19
19
25
27
27
29
44
49
49
1
3
7
7
7
8
8
8
8
8
8
9
9
9
9
10
10
10
11
11
11
11
12
12
13
13
13
13
13
13
14
14
14
14
14
14
14
16
16
19
20
20
20
20
20
26
28
28
30
45
50
50
1
2
7
8
8
9
9
9
9
9
10
10
10
10
10
10
10
11
11
11
11
12
12
13
13
13
13
13
14
14
14
14
14
15
15
15
17
17
17
17
19
19
20
27
29
31
46
51
51
51
51
1
1
2
3
9
10
11
11
11
11
11
11
11
12
12
12
12
12
13
13
14
14
14
14
14
14
14
15
15
15
15
16
16
16
16
19
19
19
20
20
28
30
32
47
52
52
52
52
2
2
3
4
8
9
10
10
10
10
11
11
11
12
13
13
13
13
14
14
14
14
15
15
15
15
15
16
16
17
19
20
20
20
21
26
29
30
31
33
48
53
53
53
53
1
3
3
4
8
9
9
10
10
10
11
11
11
11
11
11
12
12
12
13
13
13
14
14
14
14
14
15
16
16
16
16
16
16
17
17
18
20
21
22
27
31
32
34
49
54
54
54
54
1
1
8
8
8
10
10
10
11
11
11
11
11
12
12
13
13
13
13
13
13
13
14
14
15
16
16
16
17
17
17
17
17
17
17
19
22
23
28
32
33
33
35
35
50
55
55
1
2
8
9
9
10
10
11
11
11
11
11
11
11
11
12
12
13
13
13
14
14
14
14
14
14
14
14
16
16
16
16
16
17
17
17
18
18
18
20
22
23
29
33
34
34
36
36
51
56
56
1
1
3
11
11
11
12
12
12
12
12
13
14
14
14
15
16
16
16
17
17
17
17
18
18
18
19
19
21
22
23
34
35
35
37
37
52
57
57
1
1
2
4
10
12
12
12
12
12
13
13
13
13
13
14
14
14
14
15
16
16
16
18
18
18
19
20
20
22
22
22
23
35
36
36
38
38
53
58
58
1
1
1
2
3
11
12
12
12
12
12
12
13
13
13
13
14
14
14
14
16
16
16
16
17
17
17
17
17
19
19
19
20
21
23
23
23
36
39
39
54
59
59
1
1
3
10
10
10
11
12
12
12
13
13
13
13
13
14
14
14
14
16
16
16
16
16
17
17
17
17
17
17
18
18
18
19
20
20
22
22
24
37
40
40
55
60
60
1
2
4
13
13
13
13
13
14
14
14
14
14
14
15
15
15
16
16
16
17
17
17
18
18
19
19
20
21
22
22
22
22
23
23
24
25
38
41
41
56
61
61
1
3
10
12
12
12
12
12
12
13
14
14
14
14
14
15
15
15
16
16
16
16
16
16
16
16
17
17
17
18
19
19
20
20
22
23
23
23
23
24
25
26
39
42
42
57
62
62
1
1
2
10
13
13
13
13
13
14
14
14
15
16
16
16
16
16
16
16
16
16
16
17
17
17
18
18
18
19
20
20
22
22
22
22
22
23
24
25
26
27
40
43
43
58
63
63
1
1
1
3
13
13
13
13
14
14
14
14
14
15
16
16
17
17
17
17
17
17
17
18
18
18
19
19
22
23
23
23
23
23
23
23
24
25
27
28
41
44
44
59
64
64
1
1
1
2
2
4
12
12
13
14
14
14
14
15
15
15
16
16
17
18
18
18
18
18
19
19
19
19
20
20
23
24
24
25
28
29
42
45
45
60
63
63
65
65
1
2
3
3
13
13
13
13
13
13
13
14
14
14
14
14
15
15
15
15
16
16
17
18
18
18
18
19
19
19
19
20
20
20
25
25
26
29
30
43
46
46
61
64
64
66
66
1
3
4
13
13
13
14
14
14
14
14
14
15
15
15
15
15
16
16
16
17
17
18
19
19
19
19
19
19
19
19
19
20
20
20
25
26
26
27
30
31
44
47
47
62
65
65
67
1
1
12
13
14
14
14
14
14
14
15
15
15
15
16
16
16
16
17
17
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
21
25
25
26
28
31
32
45
48
48
63
66
66
68
1
1
2
2
13
14
15
15
15
16
16
17
17
17
17
17
18
19
19
19
20
20
20
20
20
20
21
21
21
21
25
26
26
29
32
33
46
47
47
49
49
64
67
69
1
1
2
3
3
13
14
14
15
15
16
16
16
16
16
18
19
20
20
20
21
21
21
22
22
26
27
30
33
34
47
48
48
50
50
65
68
70
1
2
3
4
4
13
13
14
14
14
15
15
15
15
16
16
16
16
16
17
17
17
19
19
20
21
21
21
21
22
23
23
26
26
27
28
28
31
34
35
48
49
49
51
66
69
71
1
3
13
13
13
13
13
15
16
16
16
16
17
17
17
17
18
18
19
19
20
20
21
21
21
21
22
22
22
23
25
26
28
29
29
29
29
32
35
36
49
50
50
52
63
68
70
72
1
2
13
14
16
16
16
16
17
17
17
17
17
18
18
19
19
19
19
20
20
20
21
21
21
22
22
22
23
23
23
26
26
29
29
33
36
37
50
51
53
64
69
71
71
73
73
1
1
1
3
14
14
15
17
17
17
18
18
18
18
19
19
21
22
23
23
23
23
24
24
24
25
28
34
37
38
51
52
54
65
70
72
72
74
74
1
2
4
14
14
14
15
15
15
15
15
16
16
17
18
18
18
18
19
20
21
21
23
23
24
24
25
25
25
25
26
28
29
35
38
39
52
53
55
66
71
73
73
75
75
1
1
2
3
13
13
15
16
16
17
17
18
18
18
18
18
19
19
19
19
20
22
22
23
23
24
25
26
26
26
26
26
26
28
28
29
30
36
39
40
49
52
54
56
72
74
74
76
76
1
1
3
14
15
16
17
17
17
17
17
18
18
18
19
19
19
19
20
20
20
22
22
23
23
23
23
24
25
26
26
28
29
29
30
31
37
40
41
50
53
55
55
57
57
73
77
77
1
2
4
14
14
15
15
15
15
16
16
17
17
18
18
19
19
20
20
20
20
21
21
22
22
24
24
25
26
29
31
32
38
41
42
51
54
56
56
58
58
74
78
78
1
3
13
13
14
14
15
15
16
16
17
17
18
18
19
19
20
21
22
22
23
23
24
24
25
25
26
27
31
32
39
42
43
52
55
57
57
59
59
75
79
79
1
1
14
14
14
15
15
15
15
16
17
17
17
19
19
19
19
20
20
20
21
22
23
23
23
23
24
24
24
24
25
25
26
26
27
28
28
31
32
40
43
44
56
58
58
60
60
76
80
80
1
1
13
15
15
16
16
17
17
17
18
19
19
19
19
19
20
20
20
20
20
21
22
22
22
24
25
25
25
26
26
27
28
29
29
31
31
32
41
44
45
57
61
61
77
81
81
1
1
1
2
16
17
17
19
20
20
20
20
20
21
21
21
23
25
26
26
26
28
29
32
32
42
43
44
45
46
58
62
62
78
82
82
1
1
1
2
3
17
17
17
17
17
18
18
20
21
21
21
22
22
23
23
24
24
26
27
28
29
31
43
44
45
46
47
59
63
63
79
83
83
1
1
1
3
4
14
14
17
17
18
18
19
19
20
20
21
21
21
21
22
22
23
23
23
23
23
24
24
24
24
24
25
25
28
28
28
29
31
32
44
45
46
48
60
64
64
80
84
84
1
1
1
2
14
14
14
16
17
17
17
17
18
18
19
19
19
19
21
22
22
22
22
22
23
23
23
24
25
25
26
26
28
28
29
29
29
31
31
32
45
46
47
49
61
65
65
81
85
85
1
1
1
2
3
14
17
18
18
18
18
19
19
20
20
22
22
22
23
23
23
23
23
23
24
25
26
26
29
29
31
32
32
46
48
49
50
52
62
66
66
82
86
86
1
1
1
1
2
3
4
16
16
18
19
19
19
19
19
20
20
21
23
23
23
23
23
24
24
24
24
24
24
26
27
28
28
28
31
32
47
49
50
51
53
63
67
67
83
87
87
1
1
2
3
4
13
16
16
16
16
18
19
19
19
19
20
20
20
20
21
21
21
21
21
22
22
22
22
22
23
23
23
23
24
24
24
25
25
25
25
25
28
29
29
29
31
31
32
48
50
51
52
52
54
64
68
68
84
88
88
1
2
3
14
16
16
17
17
18
18
18
18
19
19
19
19
20
20
21
22
22
22
23
23
23
23
23
23
23
23
23
24
24
24
24
25
25
25
26
26
26
26
26
26
28
28
29
31
31
31
32
32
45
49
51
52
53
53
55
65
69
69
85
89
89
1
1
1
3
17
18
18
18
18
19
19
19
20
20
20
21
21
21
22
22
22
23
23
23
24
24
25
25
25
26
26
26
26
26
27
28
29
29
29
29
31
31
31
32
32
32
46
50
52
52
53
54
54
54
56
66
70
70
86
90
90
1
1
1
2
2
4
13
13
16
18
18
19
19
19
20
20
20
21
21
21
21
22
22
22
22
22
22
23
23
24
25
25
25
25
26
26
26
28
29
32
32
32
32
32
33
47
51
53
53
54
55
55
55
57
67
71
71
87
89
89
91
91
1
2
3
3
13
13
14
16
16
16
16
16
17
18
19
19
20
20
20
21
21
21
22
22
22
22
23
23
25
26
26
26
26
26
26
26
26
27
27
28
28
28
29
33
34
48
52
54
54
55
56
56
56
58
68
72
72
88
90
90
92
92
1
1
2
3
4
14
16
16
17
17
17
18
19
19
20
20
20
20
21
21
21
21
21
21
22
22
22
23
23
23
23
23
23
26
26
26
27
27
27
28
28
28
28
29
29
29
34
34
35
53
55
55
56
57
57
57
59
69
73
73
89
91
91
93
1
1
3
13
16
17
18
18
18
19
20
20
20
21
21
21
21
22
22
22
23
23
23
23
23
23
24
25
26
26
26
26
26
26
28
28
28
28
28
28
28
28
29
29
29
29
34
35
35
54
57
58
58
58
60
70
74
74
90
92
92
94
1
1
1
2
2
4
13
14
16
16
16
16
17
18
19
21
21
21
22
22
22
22
23
23
23
23
25
26
26
27
27
27
28
29
29
29
29
29
29
29
29
29
29
30
34
34
35
55
58
59
59
59
61
71
73
73
75
75
91
93
95
1
1
1
2
3
3
13
13
14
16
16
16
17
17
17
18
21
21
21
21
22
22
23
23
23
23
23
23
23
23
24
25
26
28
28
28
28
29
29
30
31
35
35
35
36
56
59
60
60
60
62
72
74
74
76
76
92
94
96
2
2
3
4
13
13
13
14
16
16
16
17
17
18
18
18
20
20
20
20
21
21
22
22
22
23
23
23
24
24
26
28
28
28
28
28
28
29
29
31
31
32
34
35
35
36
37
57
60
61
61
61
63
73
75
75
77
90
93
94
95
97
1
1
3
3
4
14
16
16
17
17
17
17
18
18
19
20
21
21
21
21
22
23
23
23
23
23
23
23
25
25
25
25
25
27
27
27
28
28
29
29
29
29
29
29
29
32
32
35
35
37
37
38
38
58
61
62
62
62
64
74
76
76
78
91
95
96
98
1
1
2
17
18
18
18
18
18
20
20
20
22
22
23
23
23
23
24
24
24
25
26
26
26
26
26
27
28
28
28
30
30
31
31
34
37
38
38
38
38
59
60
62
63
63
63
63
65
75
77
79
92
96
97
97
99
99
1
1
2
3
18
18
18
18
18
19
20
21
21
21
21
22
23
23
23
23
24
24
25
25
25
26
26
27
27
28
28
28
29
31
31
31
31
31
32
32
32
34
35
37
37
38
60
61
63
64
64
64
64
66
76
78
80
93
97
98
98
100
100
1
1
1
1
3
4
17
17
18
18
19
19
20
20
21
21
21
21
22
23
24
25
25
25
26
26
26
28
28
28
28
28
29
29
30
32
32
32
33
34
35
38
38
39
61
62
65
65
65
65
67
74
77
78
79
81
98
99
99
101
101
1
1
1
2
17
17
17
18
18
18
18
20
20
21
21
21
21
22
22
23
24
24
25
25
25
25
25
25
25
26
26
26
26
29
29
29
29
29
30
30
33
34
34
35
39
40
62
63
66
66
66
66
68
75
79
80
82
99
100
100
102
102
1
1
1
2
2
3
17
18
19
19
19
21
21
21
21
21
22
22
22
23
23
24
25
25
25
25
25
26
26
26
26
28
29
29
30
30
30
31
34
35
35
37
40
41
63
67
67
67
67
69
76
80
81
83
100
103
103
1
1
1
2
3
3
4
20
20
20
20
20
21
21
22
23
23
23
25
25
26
26
26
27
27
28
28
28
29
30
30
30
30
31
31
32
35
37
38
40
41
64
68
68
68
68
70
77
81
82
84
101
104
104
1
2
2
3
4
4
20
20
20
21
21
21
21
21
21
21
21
21
21
23
23
24
24
25
25
25
25
25
25
26
26
27
27
28
28
29
29
29
30
30
30
31
31
32
32
34
34
34
38
40
41
65
69
69
69
69
71
82
83
85
102
105
105
3
3
19
19
19
20
20
21
21
21
21
21
21
22
22
22
24
24
25
25
25
25
25
26
26
26
26
26
26
26
27
28
28
28
28
28
28
28
29
29
29
29
29
30
31
32
32
34
35
35
35
40
40
41
66
66
68
70
70
70
72
83
84
86
103
106
106
1
1
1
19
20
20
20
20
21
21
21
22
22
22
22
23
23
23
24
24
24
25
25
25
25
26
26
27
28
28
28
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
31
31
32
33
34
35
37
37
41
41
67
67
69
71
71
71
71
73
73
84
85
87
104
107
107
1
1
2
19
20
20
21
23
23
23
23
23
23
24
24
25
25
26
26
26
26
26
27
27
28
28
29
29
30
30
30
30
31
31
31
32
32
34
34
35
35
35
38
38
40
68
68
70
70
70
72
72
72
72
74
74
85
86
88
105
108
108
1
1
1
2
2
3
19
21
21
22
23
23
23
24
24
26
27
27
28
28
29
30
30
30
30
31
31
31
32
32
32
32
35
35
35
36
40
41
69
69
71
71
71
73
73
73
73
75
75
85
86
87
87
89
106
109
109
1
1
1
2
3
3
4
20
20
21
21
22
22
22
23
24
24
24
25
25
27
27
28
28
28
28
29
29
29
30
30
30
30
31
31
32
32
32
34
36
37
40
40
41
70
72
72
72
74
74
74
76
76
86
87
88
88
90
107
110
110
1
1
2
3
4
21
21
21
21
21
21
22
22
24
24
24
25
25
26
26
26
26
27
28
28
28
29
30
30
30
30
30
31
31
31
32
32
33
35
37
37
37
37
38
40
41
41
71
73
73
73
75
77
77
87
88
89
91
108
111
111
1
1
2
2
3
21
22
22
22
22
23
23
24
24
25
25
25
25
26
26
26
26
26
27
27
27
27
28
29
29
30
30
30
30
31
31
31
31
32
32
32
34
34
37
38
38
38
38
40
41
72
74
74
76
78
78
88
89
90
92
109
112
112
1
1
1
3
3
4
22
22
22
22
23
24
25
25
26
26
26
26
28
28
28
28
29
29
29
30
30
30
30
31
31
32
32
32
32
33
34
35
35
37
37
38
40
40
41
73
75
75
77
79
79
90
91
93
110
113
113
2
2
4
21
21
21
22
22
23
24
24
26
26
26
26
29
29
29
30
30
30
30
30
30
30
30
30
30
31
31
31
32
32
32
33
33
34
34
35
37
37
38
38
39
40
40
40
41
41
74
76
76
78
80
80
91
92
94
111
114
114
1
1
3
3
22
22
22
22
24
25
26
26
26
26
27
28
28
29
29
29
29
30
30
30
31
31
31
31
31
31
32
32
32
32
34
35
35
35
35
35
37
38
38
38
39
40
40
40
40
41
41
41
41
41
71
75
77
77
79
81
81
92
93
95
112
115
115
1
2
4
23
23
24
24
24
25
25
26
26
26
27
27
28
29
29
29
29
30
30
32
32
32
32
32
32
32
35
35
38
38
38
38
38
40
40
41
41
41
41
42
72
76
78
78
78
80
80
82
82
89
92
94
96
113
115
115
116
116
1
1
3
22
22
22
22
24
24
24
26
27
28
28
28
29
29
29
29
29
29
29
30
31
31
31
31
31
32
32
32
33
33
34
38
41
41
41
42
43
73
77
79
79
79
81
81
83
83
90
93
95
97
114
116
116
117
117
1
1
21
21
22
22
22
22
23
26
26
29
29
29
29
30
30
31
31
31
31
31
32
32
32
32
33
33
33
34
35
37
37
40
40
41
41
43
43
44
74
78
80
80
80
82
82
84
84
91
94
95
96
97
98
115
117
117
118
118
1
1
1
2
5
5
5
22
22
22
22
24
24
27
28
28
28
29
29
29
30
30
31
31
32
32
32
32
32
32
32
32
34
34
34
35
36
37
38
38
40
41
41
43
44
44
79
81
81
81
83
83
85
85
92
95
96
97
98
99
116
118
118
119
1
1
1
3
4
4
5
5
6
6
6
22
22
22
23
23
25
27
27
28
28
29
29
29
29
30
30
31
31
31
32
33
33
34
35
35
35
36
37
37
37
38
41
42
42
44
80
82
84
84
86
86
96
97
98
99
100
117
119
120
1
1
2
4
5
7
7
7
7
21
21
22
22
23
24
24
27
29
29
30
30
30
31
31
31
31
31
32
32
34
34
35
37
38
38
38
43
43
81
83
85
85
87
87
97
98
100
101
118
120
121
1
1
1
1
2
3
4
6
8
8
8
8
22
22
22
22
22
22
22
22
22
24
28
28
28
29
29
30
31
31
31
32
32
32
32
32
32
35
37
38
40
40
44
44
82
84
86
86
88
88
98
101
102
119
121
122
1
1
1
3
5
7
9
9
22
22
22
22
23
23
23
25
27
28
28
29
29
29
29
29
29
31
31
31
31
31
31
31
31
32
32
32
33
34
34
37
38
41
41
43
83
85
87
87
89
89
99
102
103
120
122
123
1
1
1
2
4
4
4
5
5
10
10
21
22
23
23
24
24
24
27
27
29
30
30
30
30
31
32
32
32
32
32
32
32
32
32
32
33
34
35
35
37
37
38
43
43
43
44
84
86
88
88
90
90
100
103
104
121
123
124
1
1
1
2
3
5
5
5
7
11
11
24
24
25
29
29
30
31
31
31
31
31
31
31
31
32
32
32
32
33
33
33
38
38
40
40
44
44
44
85
87
89
89
89
89
91
91
101
104
105
121
122
124
125
1
1
1
1
1
2
3
5
5
6
7
12
12
22
24
24
24
25
25
28
28
29
30
31
31
31
32
32
32
32
32
32
33
34
34
34
37
37
41
41
43
43
43
43
43
44
44
86
88
90
90
90
90
92
92
102
105
106
122
125
126
1
1
1
1
2
3
4
5
5
7
8
13
13
14
15
22
23
24
25
25
25
28
28
28
28
29
29
29
29
29
30
30
30
32
32
32
32
33
33
33
33
33
34
34
34
34
35
35
37
37
38
41
41
43
43
44
44
44
44
44
87
89
91
91
91
91
93
103
105
106
106
107
125
126
127
1
1
1
1
2
2
2
3
5
5
5
5
5
7
9
14
14
17
17
22
22
22
25
25
25
26
27
27
28
29
29
30
30
30
32
33
33
33
33
33
33
34
34
34
34
34
34
35
35
35
36
36
37
37
38
41
43
43
44
45
45
88
90
92
92
92
92
94
104
106
107
107
108
125
126
127
128
1
1
1
3
3
3
4
4
4
5
5
5
5
6
6
6
7
10
15
15
15
20
20
22
23
24
25
25
26
26
27
28
28
28
29
29
30
30
31
31
31
31
32
33
33
34
34
34
34
34
34
34
35
35
35
35
35
37
37
37
37
38
38
41
41
43
46
46
89
91
93
93
93
95
105
107
108
108
109
113
127
128
129
2
2
2
4
4
5
5
5
5
7
7
7
7
7
11
14
14
15
15
16
16
16
16
17
18
20
26
26
27
28
28
29
29
29
29
29
29
29
30
31
31
31
31
32
32
32
33
33
33
34
34
34
34
34
34
34
35
35
35
35
35
36
37
38
38
38
38
40
40
41
43
46
46
46
47
47
47
47
90
90
92
94
94
94
94
96
106
108
109
110
114
115
128
129
130
1
3
3
3
4
5
5
5
6
6
7
7
7
8
8
8
8
12
13
13
14
14
15
15
16
17
17
17
17
19
19
20
25
26
27
27
27
27
27
27
27
28
28
29
29
30
30
31
32
32
33
33
34
34
34
34
35
35
35
35
35
35
36
36
37
37
37
37
38
38
39
39
40
40
41
41
41
43
46
47
47
47
47
91
91
93
95
95
95
95
97
107
107
110
111
111
115
115
116
129
130
131
1
1
2
4
5
5
5
7
7
8
8
9
9
13
14
14
14
15
15
15
15
16
16
16
17
17
18
18
19
19
19
20
20
26
27
27
28
28
28
28
29
29
29
29
30
31
31
32
34
34
35
35
35
36
36
36
36
37
37
37
37
37
37
38
38
38
38
40
40
41
41
47
48
92
92
96
96
96
96
98
108
108
111
112
112
116
116
117
130
131
132
1
1
1
1
3
4
4
5
5
9
9
10
10
13
14
15
15
16
16
17
17
17
17
17
18
19
19
19
19
20
20
20
25
27
27
27
27
28
29
29
29
30
30
31
32
34
35
35
35
35
36
36
36
36
37
37
37
37
38
38
38
38
38
38
41
41
48
49
93
93
97
97
97
97
99
109
109
112
113
113
117
117
118
131
132
132
133
1
1
1
2
2
5
5
5
5
7
9
11
11
15
16
17
17
18
18
20
20
20
20
20
20
21
25
25
25
25
27
27
28
28
29
30
30
31
31
34
35
35
35
36
36
37
37
37
38
38
38
38
38
38
38
39
40
40
42
42
46
49
49
50
94
96
96
97
98
98
98
98
99
100
110
110
113
114
114
118
118
119
132
132
133
134
2
2
3
3
5
5
5
6
7
9
9
12
12
16
17
17
17
17
17
18
18
19
21
21
22
27
28
29
29
29
30
31
31
31
31
31
32
34
34
35
35
36
36
37
37
38
38
38
39
39
40
41
41
43
43
46
47
49
50
50
95
97
97
98
99
99
99
99
100
101
114
115
115
118
119
120
121
133
134
135
1
1
3
3
4
4
5
5
5
5
7
8
9
10
13
13
14
14
17
17
17
18
18
19
20
22
22
22
23
28
28
29
30
30
31
31
32
32
35
35
37
38
38
39
39
40
40
40
41
42
42
44
47
50
96
98
98
99
100
100
100
101
102
115
116
116
120
120
121
134
135
136
1
1
1
5
5
7
9
10
11
11
11
11
14
14
14
14
14
17
17
17
17
18
18
19
19
21
22
23
23
23
28
28
28
28
29
29
29
29
30
30
30
30
30
31
31
31
31
33
33
34
34
35
37
37
37
37
38
39
39
40
40
41
41
41
41
43
43
45
97
99
99
100
101
101
102
103
116
117
117
120
135
136
137
1
1
2
2
5
5
7
9
9
10
11
11
14
15
15
17
18
18
18
18
19
19
20
20
22
22
22
22
23
24
24
28
28
28
29
29
29
30
30
30
30
30
30
30
30
31
31
31
31
32
32
32
34
34
34
35
35
37
38
38
40
40
40
40
40
40
40
41
41
41
41
41
42
44
46
97
98
100
101
102
102
103
104
117
118
118
136
137
138
1
1
1
2
3
3
5
5
5
7
9
9
9
11
16
16
19
19
19
19
19
23
23
23
23
23
24
25
25
29
30
30
30
30
30
31
31
31
31
31
32
32
32
33
33
33
34
34
35
40
40
40
41
41
41
41
41
41
41
41
42
43
45
47
98
99
101
102
103
103
104
105
110
118
119
119
137
138
139
1
1
1
2
3
4
4
5
5
5
5
6
7
7
7
9
9
10
11
11
12
15
17
17
19
19
19
20
20
22
23
23
24
24
24
25
26
26
29
29
30
30
31
32
32
32
32
32
32
33
33
33
33
33
33
33
33
34
37
38
38
40
40
41
42
43
44
45
46
48
99
100
102
103
104
104
105
106
111
111
111
119
120
120
125
125
125
125
138
139
140
1
1
1
3
5
5
7
8
8
11
11
12
12
13
16
16
16
18
18
18
18
18
19
19
20
20
20
20
21
23
23
25
25
26
26
27
27
28
28
29
29
30
30
32
32
32
32
32
32
32
32
33
33
33
33
33
33
34
34
37
38
40
40
40
41
41
42
43
43
43
43
44
44
46
47
49
100
103
104
105
105
106
107
112
112
112
120
121
121
121
125
125
125
125
126
126
139
140
141
1
9
9
13
13
14
17
17
17
18
19
19
19
19
21
21
22
22
25
26
26
26
26
28
28
28
30
30
30
31
31
33
33
33
33
33
33
34
35
35
35
36
38
40
40
40
40
41
41
41
43
43
44
44
44
44
44
44
47
48
48
49
50
50
104
104
105
106
106
106
107
108
113
113
113
119
121
122
122
122
126
126
127
127
140
141
142
1
1
1
4
5
9
9
11
11
15
18
18
18
18
19
19
20
20
22
22
22
22
22
23
23
25
25
26
29
29
29
29
30
31
32
32
34
34
35
35
35
35
36
36
36
36
36
36
36
36
37
37
41
41
41
41
44
44
45
46
47
48
49
49
49
49
51
51
105
105
106
107
107
107
108
109
114
114
114
123
123
123
127
127
141
142
143
5
5
5
9
9
11
13
13
16
19
19
19
20
21
21
22
23
24
26
26
27
28
29
30
30
30
30
32
33
35
35
35
35
35
36
36
36
36
36
37
37
37
37
38
38
40
40
45
46
46
46
47
47
49
49
50
50
52
52
106
106
107
107
108
108
108
109
110
115
115
115
124
124
124
125
125
142
143
144
1
5
5
5
5
5
5
6
9
10
11
11
13
17
20
20
20
21
21
22
23
25
27
28
28
30
30
31
31
31
31
34
34
35
35
36
36
36
37
37
37
38
38
38
38
39
40
40
41
41
41
46
46
46
47
47
49
49
50
51
51
53
53
107
107
108
108
109
109
109
110
111
111
115
116
116
121
125
125
125
125
125
126
126
143
144
145
1
4
4
4
5
5
6
6
7
7
9
9
10
10
11
11
11
11
13
13
13
20
20
21
21
21
21
23
25
26
28
29
31
32
32
32
32
35
35
35
35
36
37
38
38
39
39
39
41
41
41
43
43
47
47
47
51
54
54
109
109
110
110
110
111
111
112
112
116
116
122
126
126
126
127
127
144
145
146
1
1
4
4
5
5
5
5
5
5
7
7
7
7
8
8
9
9
9
11
11
11
11
11
11
11
13
15
20
21
21
21
21
22
22
22
24
24
25
26
27
28
29
32
33
33
33
36
36
36
38
39
39
44
44
52
55
55
110
110
111
111
111
112
112
113
113
122
127
127
127
128
128
145
146
147
1
1
1
1
4
5
5
5
5
5
6
6
7
8
8
8
9
9
9
10
10
12
13
13
13
13
13
16
21
21
21
21
22
22
23
23
23
25
25
26
28
28
29
29
30
34
34
34
34
37
37
37
41
53
56
56
111
111
112
112
112
113
113
114
114
128
128
128
128
128
146
147
148
1
1
1
1
1
4
4
4
5
5
5
7
8
9
9
9
9
10
10
11
11
11
11
13
13
13
17
20
20
20
21
22
23
23
24
24
26
26
28
28
29
29
29
29
29
30
30
30
30
31
35
35
35
35
37
37
40
41
41
41
54
57
57
106
112
112
113
113
113
114
114
115
115
129
129
129
147
148
149
1
1
1
1
1
1
1
2
4
5
5
5
6
8
9
9
9
10
10
11
11
11
12
12
12
12
13
13
13
13
14
14
21
21
21
21
23
24
25
25
27
27
29
29
29
29
30
30
30
30
30
30
31
31
31
32
33
36
36
36
36
38
38
40
40
40
55
58
58
107
107
108
112
113
114
114
114
115
115
116
116
128
130
130
148
149
150
1
1
1
3
4
5
5
5
5
5
6
7
9
10
11
11
11
11
12
13
13
13
13
13
14
15
15
21
21
21
21
22
22
24
26
26
28
28
28
30
30
31
31
31
31
32
32
32
32
32
33
34
37
37
40
40
40
56
59
59
108
108
109
114
115
115
115
116
116
117
129
129
131
131
149
150
151
1
1
1
1
2
4
5
5
5
6
7
7
8
10
10
10
11
11
11
12
13
13
13
14
14
15
16
16
20
20
21
21
22
23
23
25
28
28
28
29
29
29
29
30
31
32
32
32
33
33
33
34
34
35
38
38
38
40
46
57
60
60
109
109
110
114
115
115
116
116
116
117
118
119
130
132
132
150
151
152
1
1
1
1
3
4
4
4
5
5
6
7
9
9
9
9
11
11
11
11
12
12
13
13
13
13
14
15
15
17
21
21
21
21
21
21
21
21
21
23
25
25
26
28
29
29
29
29
29
30
30
30
30
31
31
31
33
33
33
34
34
34
35
35
36
38
39
39
40
40
40
41
43
46
58
61
61
108
110
110
111
115
116
116
116
117
117
118
119
119
121
131
133
133
151
152
153
1
4
4
5
5
7
7
7
8
9
10
11
11
12
12
12
12
12
12
12
13
14
14
15
15
16
16
16
16
18
18
21
21
21
21
22
22
22
24
26
26
27
28
28
28
28
28
28
28
29
30
30
31
31
31
31
31
32
32
34
34
34
34
34
34
35
35
35
35
35
36
36
37
37
40
40
40
41
41
43
43
44
44
46
46
59
62
62
100
107
109
111
111
112
116
116
117
117
118
118
119
120
121
122
132
134
134
152
153
154
1
4
5
5
6
7
8
8
8
8
8
9
9
9
11
11
12
13
13
13
13
13
13
15
15
16
17
17
19
19
20
21
22
22
23
23
23
28
28
28
29
29
29
29
29
29
29
29
30
31
31
31
32
32
32
32
33
33
34
34
34
34
35
35
35
35
35
35
35
36
36
36
36
37
37
37
40
40
41
41
41
41
44
44
44
44
44
44
46
46
46
46
60
63
63
101
102
104
106
108
110
111
112
113
118
118
119
119
120
121
121
121
122
123
133
135
135
153
154
155
1
1
2
4
4
4
5
5
7
7
7
8
8
9
10
11
11
13
13
13
13
13
14
14
14
14
15
16
16
16
17
17
18
18
20
20
23
23
24
26
26
28
29
29
29
30
30
30
31
31
31
32
32
32
33
33
33
33
34
34
34
35
35
35
36
36
36
36
36
37
37
37
37
38
40
41
41
41
42
42
43
44
44
44
44
46
46
46
61
62
62
64
64
102
102
103
104
105
106
106
107
109
111
112
113
119
119
120
120
121
121
121
122
122
123
124
128
128
134
136
136
154
155
156
1
2
3
5
5
5
6
7
8
10
11
11
11
12
13
13
13
13
14
14
14
15
15
15
15
15
15
16
17
18
18
21
21
21
23
23
23
24
24
28
30
30
30
31
31
31
32
32
32
32
32
32
33
33
34
34
34
34
34
35
35
36
36
37
37
37
37
37
38
38
38
41
41
43
43
43
43
43
44
46
62
63
63
65
65
103
103
104
105
105
106
106
107
107
108
110
112
120
120
121
121
121
122
122
123
123
123
129
129
135
137
137
155
156
157
1
1
3
4
4
5
6
7
7
7
7
7
8
8
9
9
11
11
12
12
12
13
15
15
15
16
16
16
16
16
16
17
18
19
19
21
22
22
22
23
24
24
24
25
29
30
31
31
31
31
31
32
32
32
32
33
33
33
33
33
34
35
36
37
37
38
38
38
40
40
41
42
42
44
44
44
44
44
63
64
64
66
104
104
105
106
106
107
107
108
108
109
111
113
121
121
121
122
122
122
123
123
124
129
129
136
138
138
156
157
158
1
1
1
1
1
1
1
4
7
7
8
8
8
9
9
10
11
12
13
13
14
14
14
15
15
16
17
18
19
20
20
21
21
21
23
23
24
24
24
25
25
26
29
29
29
30
30
30
30
31
31
31
32
32
32
33
33
34
34
34
36
37
37
37
39
40
41
41
41
41
41
43
43
45
64
65
65
67
102
105
105
106
107
107
108
108
109
109
110
112
116
122
122
123
123
123
124
125
137
139
139
157
158
159
1
1
1
2
5
5
5
9
10
10
11
11
11
12
12
13
14
14
15
15
16
18
18
20
21
21
21
22
23
24
24
24
24
25
25
25
25
26
26
29
29
30
30
30
30
30
31
31
31
31
32
32
32
33
33
33
34
35
37
38
38
40
40
40
40
44
44
46
65
66
68
103
104
104
106
106
107
108
108
109
109
110
110
111
116
121
123
123
124
124
124
125
126
138
139
140
140
158
159
160
1
1
1
1
3
4
6
7
7
7
8
8
8
11
11
11
12
14
14
14
15
15
16
16
16
17
18
21
22
22
25
25
25
25
26
26
26
30
30
31
31
32
32
32
32
32
32
33
33
34
36
38
40
40
41
45
47
66
67
69
104
105
105
107
107
108
109
109
110
111
111
111
112
115
121
122
123
124
125
125
126
127
139
140
140
141
159
160
161
1
1
1
1
2
4
4
4
5
5
5
5
7
7
7
7
8
8
8
8
8
10
10
11
11
12
12
13
15
15
15
15
16
17
17
18
18
18
18
19
22
23
23
24
26
26
26
26
26
26
29
30
32
32
32
33
33
33
33
33
34
34
37
38
39
40
42
43
46
48
67
68
70
105
106
106
108
108
109
109
110
111
114
115
116
123
123
124
125
126
126
127
128
140
141
142
160
161
162
1
1
1
2
3
5
5
5
6
6
7
7
7
7
7
8
8
8
8
9
10
11
13
14
14
14
14
15
15
16
17
17
18
18
18
18
18
18
18
18
18
19
20
20
23
24
24
25
26
26
26
27
27
27
28
29
29
30
30
31
31
32
32
32
32
33
33
33
33
34
34
35
35
35
35
36
38
38
38
40
40
40
40
40
41
41
47
49
69
71
104
106
107
107
109
109
109
110
110
111
111
113
124
125
126
127
127
128
129
141
142
143
161
162
163
1
1
1
2
3
5
6
7
7
7
8
10
10
10
10
12
12
13
14
15
15
15
15
15
18
18
18
18
18
19
19
20
20
20
20
20
24
24
24
24
25
25
26
26
26
27
27
28
28
28
28
28
29
30
30
30
31
31
31
31
32
32
32
32
32
32
33
33
33
34
35
35
35
37
37
39
39
40
40
40
40
41
41
41
41
43
43
46
48
48
50
50
64
67
70
70
72
72
102
104
105
107
108
108
109
110
110
111
114
116
121
124
126
127
128
128
129
130
142
143
144
162
163
164
2
2
3
4
5
7
7
7
8
8
8
8
8
8
8
8
9
10
11
14
14
14
15
15
16
16
18
18
19
19
19
20
20
20
21
24
25
25
26
26
26
26
27
28
28
28
28
29
29
29
29
29
30
30
30
30
30
31
31
31
31
31
31
32
32
32
32
32
32
32
32
33
33
33
33
34
34
34
35
36
37
38
40
40
40
40
40
40
41
42
42
43
43
47
49
49
51
51
65
68
71
71
73
73
103
105
106
107
109
109
110
110
111
111
111
112
116
116
121
122
123
127
128
129
129
130
131
143
144
145
163
164
165
1
3
3
4
5
5
7
8
8
8
9
9
9
9
10
10
10
10
10
10
12
12
12
14
15
16
18
20
20
20
21
21
21
22
24
24
24
25
25
26
26
27
27
27
27
28
29
29
30
30
30
30
30
30
30
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
34
34
35
35
35
35
36
39
40
40
40
42
43
43
43
43
43
43
43
43
44
48
50
50
52
52
66
69
72
72
74
74
104
106
107
109
109
112
112
113
116
116
117
119
123
124
128
129
129
129
130
130
131
132
144
145
146
164
165
166
1
1
1
4
4
5
5
5
5
5
5
7
8
10
10
10
10
10
10
11
13
14
14
14
15
15
15
15
15
17
18
18
20
21
21
22
22
23
24
25
25
25
26
27
28
28
28
28
28
28
29
30
30
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
34
34
34
34
34
34
35
35
35
35
35
36
36
37
40
40
41
41
43
43
43
43
44
44
44
44
49
53
53
67
70
73
73
75
75
81
83
100
101
105
107
108
113
113
114
116
116
117
118
120
120
124
124
124
129
130
130
130
131
131
132
133
145
146
147
165
166
167
1
1
5
5
5
6
6
6
7
8
8
9
9
9
9
10
10
10
10
10
10
10
11
12
12
12
12
14
14
15
16
16
18
18
20
20
20
20
21
22
22
23
24
25
26
26
27
27
27
28
28
28
28
29
29
29
29
29
29
30
30
30
30
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
36
36
37
37
41
41
41
41
43
43
43
44
45
45
50
54
54
71
76
76
82
84
97
101
101
102
102
106
108
109
114
114
115
117
118
120
120
124
124
125
125
130
130
130
131
132
132
133
134
146
147
148
166
167
168
1
2
5
5
7
7
8
8
8
10
10
10
10
10
11
11
11
12
13
13
15
15
17
17
18
18
19
21
22
22
23
23
23
24
27
27
27
28
29
29
29
29
29
30
30
30
30
30
30
31
31
31
31
32
33
33
33
33
34
34
34
34
34
34
34
35
35
35
35
35
36
36
36
37
37
37
38
38
40
41
42
46
46
51
55
55
72
77
77
81
83
83
83
85
98
102
102
102
103
103
107
109
115
115
116
116
116
116
118
125
125
126
126
131
132
133
133
134
135
147
148
149
167
168
169
1
1
1
1
1
2
3
4
4
8
8
8
8
9
10
10
11
12
12
12
12
13
14
14
16
16
17
20
20
20
20
20
21
23
24
24
25
26
27
27
27
28
28
29
29
29
29
30
30
30
30
30
30
30
31
31
31
31
31
32
32
32
32
33
34
34
34
35
36
37
37
38
38
38
40
40
40
43
47
47
52
56
56
73
78
78
82
84
84
84
86
97
99
103
103
103
104
104
107
115
116
116
116
117
117
117
126
126
132
133
134
134
135
136
148
149
150
168
169
170
1
1
1
1
3
4
5
5
5
5
8
8
9
9
9
10
10
10
10
12
12
12
13
13
17
17
17
17
18
18
21
21
22
22
23
25
25
26
26
27
27
27
27
27
28
28
28
28
29
29
29
30
30
31
31
31
31
31
32
32
32
32
32
33
33
34
34
34
35
35
37
37
38
38
38
40
40
44
48
48
53
57
57
74
79
79
83
85
85
87
98
99
99
100
104
104
104
105
105
109
116
116
117
117
118
118
133
134
135
135
136
137
149
150
151
169
170
171
1
1
1
2
4
5
5
8
8
9
9
10
10
10
10
10
10
10
10
12
12
12
13
13
14
17
18
18
18
20
20
20
20
21
22
23
26
26
26
26
26
27
27
27
27
27
28
29
29
29
29
29
30
30
30
31
32
32
32
33
33
33
33
33
34
34
35
35
35
36
37
37
37
37
37
38
38
40
45
49
49
54
58
58
75
80
80
84
86
86
88
99
100
100
101
105
105
105
106
106
109
116
116
117
134
135
136
137
138
150
151
152
170
171
172
1
2
2
3
4
5
5
5
5
6
8
8
10
10
10
10
11
11
11
11
11
11
12
12
12
13
15
17
17
18
18
18
19
19
19
19
19
19
20
21
22
22
23
23
25
25
26
27
27
27
27
27
27
28
28
28
29
29
29
30
30
30
30
30
31
31
33
33
34
34
34
34
35
35
37
37
38
38
38
38
38
40
40
46
50
50
55
59
59
76
81
81
87
87
89
100
101
101
102
105
106
106
107
109
117
118
135
136
137
138
139
151
152
153
171
172
173
1
1
1
1
1
1
1
3
3
4
5
5
6
6
7
8
9
9
12
12
12
12
12
12
13
13
13
16
17
17
17
19
19
20
20
20
20
20
20
20
21
21
21
21
22
23
24
26
26
28
28
28
28
28
29
29
29
29
30
30
31
31
31
31
32
32
34
35
35
35
35
36
36
37
38
38
38
38
38
38
39
40
47
51
51
56
60
60
77
82
82
88
88
90
101
102
102
102
107
109
111
117
119
120
120
136
137
138
139
140
152
153
154
172
173
174
1
1
2
4
4
4
4
4
4
5
5
5
5
6
7
8
8
8
11
12
12
12
12
12
12
13
13
13
13
13
15
17
17
18
18
21
21
21
22
22
22
22
22
23
23
23
23
25
27
27
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
30
30
31
31
31
31
31
31
32
32
33
34
34
35
35
35
36
36
37
37
37
37
38
38
38
39
39
39
40
40
40
40
40
48
50
50
52
52
57
61
61
78
83
83
86
88
89
89
91
97
102
103
103
107
107
110
116
121
121
124
124
124
134
137
138
139
140
141
153
154
155
173
174
175
1
1
1
2
3
4
5
5
5
5
5
5
6
6
6
7
7
8
8
8
9
9
9
12
13
13
13
13
13
13
14
14
14
16
16
17
18
18
19
19
20
20
22
22
23
23
23
24
24
26
27
27
28
28
28
28
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
31
31
31
31
31
31
32
32
32
32
32
33
33
35
35
35
35
35
36
36
37
37
37
37
37
37
38
38
38
38
40
40
40
40
40
40
41
41
49
51
51
53
58
60
60
62
62
79
84
84
87
89
90
92
98
99
99
104
104
110
111
114
116
117
125
125
125
135
135
138
139
140
141
142
154
155
156
174
174
176
1
3
4
5
5
5
5
5
5
5
5
5
7
7
7
8
8
8
8
9
10
10
11
11
12
12
13
13
13
14
14
15
15
15
15
17
18
19
19
19
20
20
23
23
23
25
25
27
27
28
28
28
28
28
28
28
28
29
29
29
29
29
29
30
30
30
30
30
31
31
31
31
32
32
32
32
33
33
33
33
34
34
36
36
37
37
37
37
38
38
38
38
38
41
41
41
41
41
50
52
52
54
59
61
61
63
80
85
85
88
90
91
93
99
100
100
102
106
115
115
118
124
125
126
126
136
139
140
141
142
143
155
156
157
174
175
175
177
1
1
2
4
4
4
5
5
5
6
6
6
7
7
8
8
8
8
9
9
9
9
10
11
11
12
12
12
13
14
15
15
15
15
15
16
16
16
16
18
19
20
20
21
21
23
23
23
23
24
24
25
27
28
28
28
28
28
29
29
29
29
30
30
30
31
31
31
31
31
32
32
32
32
33
33
33
33
34
34
34
34
34
34
35
36
37
37
37
37
37
37
38
38
38
39
40
40
40
41
42
42
51
53
55
60
62
62
64
81
86
86
89
91
91
92
93
94
100
101
101
104
106
116
116
119
119
125
126
126
137
140
141
142
143
144
156
157
158
176
176
178
1
1
1
3
5
5
5
5
5
5
5
7
8
8
8
8
9
9
9
9
10
10
11
11
11
12
12
12
12
12
13
13
15
15
15
15
15
15
15
17
17
18
18
18
19
19
20
21
21
23
23
24
25
25
25
25
25
27
27
27
28
28
28
28
29
29
29
29
29
29
30
30
30
30
30
30
31
31
31
31
31
31
32
32
32
32
33
33
33
34
34
34
35
35
35
35
37
37
37
37
37
37
38
38
38
38
38
38
38
39
39
40
40
40
40
41
41
41
43
43
43
50
52
54
54
56
61
63
65
82
87
87
92
92
93
94
95
96
101
102
102
104
115
119
119
120
120
130
130
138
141
142
143
144
144
145
157
158
159
177
177
179
5
5
6
6
6
7
8
9
9
9
9
10
10
10
10
10
12
12
12
12
13
13
13
15
15
15
15
16
16
16
16
18
18
20
20
21
21
21
22
23
24
25
25
25
25
26
26
26
26
27
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
32
32
32
32
32
32
32
32
33
34
34
34
35
35
35
36
38
38
38
38
38
38
38
39
40
40
40
40
41
41
41
41
42
42
43
43
43
44
44
51
55
55
57
62
64
66
83
88
88
93
93
94
94
95
95
96
96
97
102
103
103
120
121
121
125
131
131
139
142
143
144
144
145
146
158
159
160
178
178
180
4
5
5
5
5
5
5
5
5
5
6
8
10
11
11
11
11
11
11
12
12
12
13
13
13
13
13
14
14
15
15
15
15
16
16
17
17
17
19
19
19
19
19
19
20
21
23
25
25
25
26
27
27
27
27
27
27
27
27
28
28
28
28
29
29
30
30
30
30
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
34
35
35
37
37
37
37
37
37
37
37
38
38
38
39
40
40
40
41
41
41
41
42
43
43
43
43
45
45
52
56
56
58
60
64
65
67
84
88
88
89
89
94
94
95
96
96
97
97
97
97
98
104
104
104
116
121
131
131
132
140
143
144
145
146
147
159
160
161
179
179
181
1
1
5
5
5
6
6
6
7
8
9
9
9
9
10
11
11
12
12
13
14
14
14
15
15
15
15
15
15
16
16
17
17
17
17
17
17
18
20
20
20
20
21
21
21
23
24
25
25
25
25
26
26
27
27
27
27
28
28
28
28
28
29
29
29
29
30
30
31
31
31
32
32
32
32
32
32
32
33
33
33
33
33
33
34
34
34
34
34
35
35
36
36
37
38
38
38
38
38
38
39
40
41
41
41
42
42
43
43
43
43
44
44
46
46
57
57
59
61
65
66
66
68
68
85
89
89
90
90
94
95
96
97
97
98
98
98
98
99
102
104
117
131
131
132
133
141
144
145
146
147
148
160
161
162
180
180
182
1
1
1
1
4
5
5
5
5
5
7
8
9
10
11
11
11
12
12
12
13
13
15
15
15
15
15
15
15
15
15
15
16
16
17
18
19
19
21
21
21
21
21
23
25
25
25
25
25
25
25
27
27
27
27
28
29
29
29
30
30
31
31
31
31
33
33
33
34
34
34
34
34
34
34
35
35
37
37
37
37
37
38
39
39
39
40
41
42
42
43
43
44
44
44
44
47
47
58
58
60
62
66
67
67
69
69
86
90
90
90
91
91
94
95
96
97
98
98
99
99
99
99
100
115
115
117
119
132
133
142
145
146
146
147
148
149
161
162
163
181
181
183
1
1
1
5
6
6
6
8
9
9
9
9
10
10
13
14
14
15
15
16
16
16
16
16
17
17
17
17
18
18
19
21
21
21
22
22
23
23
23
25
25
25
25
25
25
25
25
26
26
26
27
27
27
27
27
27
27
28
28
28
28
28
29
29
30
30
31
31
31
31
32
34
34
34
34
34
34
35
35
35
37
38
38
38
40
40
40
41
42
42
43
43
44
44
45
45
48
48
59
59
61
67
68
68
70
70
87
91
91
91
92
95
96
97
98
99
99
100
100
100
100
101
116
119
120
131
131
133
143
145
147
147
148
149
150
162
163
164
182
182
184
1
1
1
5
5
5
5
5
5
5
5
9
10
11
14
15
15
15
15
15
15
17
17
17
17
18
18
18
19
19
19
20
21
21
21
21
23
23
23
25
25
25
26
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
29
29
29
31
31
31
32
32
33
34
35
35
35
37
37
39
39
39
40
40
41
41
42
43
43
45
45
46
46
49
49
58
60
60
60
62
68
71
71
88
92
92
93
96
97
98
99
100
100
101
101
101
101
117
117
120
121
132
144
148
148
149
150
151
163
164
165
183
183
185
1
1
1
1
1
5
6
6
8
8
9
9
9
9
9
10
12
15
15
15
16
16
16
16
17
17
17
17
17
18
18
19
19
21
21
21
21
22
22
24
24
27
27
28
28
28
29
29
29
29
29
29
30
30
30
32
33
33
34
35
35
36
37
40
40
40
41
41
43
44
44
46
46
47
47
48
48
50
50
59
61
61
63
69
72
72
89
90
93
93
94
97
98
99
99
101
102
102
102
109
118
118
118
118
121
131
133
145
149
149
150
151
152
164
164
166
184
184
186
1
5
5
5
5
5
5
5
9
10
13
15
15
15
15
16
16
16
17
17
17
17
17
17
17
17
18
19
19
19
19
20
20
20
23
23
25
25
25
27
27
27
28
28
29
29
29
29
29
29
30
30
30
31
33
34
34
35
37
37
40
41
41
44
45
45
47
47
48
48
49
49
51
60
62
62
64
70
73
73
90
91
94
94
94
95
98
99
100
100
101
102
103
115
118
118
118
118
119
119
121
125
131
132
146
150
150
151
152
153
164
165
165
167
185
187
1
1
5
5
6
6
6
6
8
8
9
9
9
9
10
14
15
15
15
16
16
17
17
17
17
17
17
17
17
18
18
18
18
20
20
21
21
23
24
25
26
26
26
26
27
27
27
28
28
29
29
29
29
29
29
29
29
29
30
30
30
30
32
32
34
34
35
37
37
37
38
42
42
45
46
46
48
48
49
49
50
50
52
63
63
65
71
74
74
91
92
94
95
95
95
96
99
101
101
102
103
104
110
111
116
119
119
119
120
120
126
133
147
151
151
152
153
154
166
166
168
186
188
1
1
1
1
1
5
5
5
5
5
5
5
5
5
5
5
7
7
9
9
10
15
15
15
15
17
17
17
17
17
18
18
18
19
19
19
19
19
19
19
19
19
19
20
21
22
22
24
25
25
27
27
27
27
27
27
27
27
27
28
28
28
29
29
29
29
29
29
30
30
30
31
31
31
31
32
33
33
34
35
35
35
37
37
38
38
39
40
40
43
43
43
46
47
49
49
50
50
51
53
64
64
66
72
75
75
92
92
93
95
95
96
96
97
101
102
104
105
119
120
120
120
126
126
134
148
152
152
153
154
155
167
167
169
187
189
1
1
1
1
1
4
4
5
5
6
6
6
8
8
8
8
8
8
8
9
9
9
9
9
10
10
10
10
15
16
16
16
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
19
19
19
19
20
20
22
23
23
24
24
25
26
26
26
26
27
27
27
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
31
31
31
31
31
31
32
32
32
32
32
33
34
34
34
34
34
36
36
37
37
38
38
40
43
43
44
44
44
46
47
48
48
50
50
50
51
51
52
54
65
67
73
76
76
91
92
93
93
94
96
97
97
98
103
105
106
120
121
126
127
127
131
149
153
153
154
155
156
168
168
170
183
188
190
1
1
5
5
5
5
5
5
7
7
7
7
8
9
9
9
9
9
10
10
11
11
12
15
15
15
17
17
17
17
18
18
18
19
19
19
19
19
19
19
20
20
21
22
22
23
23
23
23
23
23
24
24
25
25
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
28
28
28
29
29
29
29
29
29
29
29
30
30
30
30
31
31
31
31
31
32
32
32
32
32
33
33
33
34
34
34
34
35
37
37
40
40
40
41
41
43
43
43
45
45
45
47
48
49
49
51
51
52
52
53
55
62
64
66
66
68
68
74
77
77
92
93
94
94
95
97
98
98
99
103
104
106
107
118
120
121
122
125
127
127
128
131
132
150
154
154
155
156
157
169
169
171
184
186
189
191
1
1
4
5
6
8
8
8
8
9
10
10
11
11
12
12
13
13
17
17
17
17
18
18
19
19
19
19
19
20
20
20
20
21
22
23
23
23
23
23
24
24
25
25
26
26
26
26
26
27
27
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
31
31
31
31
31
32
32
32
32
33
34
34
34
35
35
37
38
38
38
38
38
40
40
41
41
42
43
44
44
46
46
48
48
49
50
50
52
52
52
53
53
54
54
56
56
63
65
67
67
69
69
75
78
78
78
78
91
92
93
94
94
95
95
98
99
99
99
100
105
107
108
118
118
119
120
121
122
123
126
126
127
127
128
129
133
151
155
156
156
157
158
170
170
172
187
190
192
1
1
5
5
5
5
5
7
8
8
9
9
9
11
11
11
12
12
15
17
17
17
19
19
19
19
19
19
19
20
20
20
20
20
20
20
21
22
22
23
23
23
24
24
24
25
26
26
26
27
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
31
31
31
31
31
31
31
32
32
32
32
32
33
34
35
35
35
38
38
38
39
39
40
40
40
41
43
43
45
45
47
49
49
50
53
53
53
54
54
55
55
57
57
64
66
68
68
70
70
76
79
79
79
79
89
92
92
93
93
93
94
95
96
99
99
100
101
106
108
109
118
119
120
120
121
121
122
123
127
127
128
129
134
134
152
154
156
157
157
158
159
171
171
173
188
191
193
4
4
5
5
5
5
8
8
8
8
10
10
10
11
12
12
12
12
12
12
13
13
15
17
17
19
19
19
19
20
20
20
20
20
21
21
21
21
22
22
23
24
24
25
25
25
26
27
27
27
28
28
28
28
29
29
29
29
29
29
30
30
30
30
30
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
33
33
34
34
34
35
35
36
40
40
40
40
44
46
48
50
50
51
53
53
54
54
54
55
55
56
56
58
58
67
71
71
77
80
80
80
80
89
90
93
93
94
94
94
95
96
97
99
101
102
107
109
110
120
120
121
121
122
122
123
126
127
127
129
134
134
135
135
153
157
158
158
159
160
172
172
174
189
192
194
1
1
1
1
5
5
5
5
5
5
5
5
7
8
8
9
11
11
11
11
11
11
11
12
12
12
13
13
15
15
15
17
17
17
19
19
19
20
20
21
21
21
22
22
22
23
23
24
24
25
25
25
25
26
26
26
26
26
26
27
27
27
28
28
28
28
28
29
29
30
31
31
31
32
32
32
32
32
32
33
33
33
34
34
34
34
34
35
37
38
38
41
41
43
45
47
47
49
51
52
54
54
55
55
55
56
59
59
68
72
72
78
81
81
87
88
89
90
91
94
94
95
95
95
96
97
99
102
103
108
110
111
117
120
121
122
123
123
128
135
136
136
154
158
159
159
160
161
173
173
175
190
193
195
1
1
1
1
1
5
5
6
7
8
8
11
11
11
11
12
12
12
12
12
12
12
13
13
13
13
14
14
14
14
14
14
17
18
19
19
19
20
21
21
21
21
22
22
22
22
23
23
24
24
24
25
25
26
26
26
26
26
26
26
26
27
27
27
27
29
29
29
29
31
31
31
31
32
32
33
33
34
34
34
34
34
35
35
38
38
42
42
44
48
48
50
52
53
55
55
56
56
56
57
60
60
69
73
73
79
82
82
86
88
89
90
91
92
95
95
96
96
96
96
98
103
104
109
111
112
118
121
121
122
123
124
127
129
136
155
159
160
160
161
162
174
174
176
191
194
196
1
1
1
1
4
4
5
5
5
5
5
7
8
8
8
11
12
12
12
12
13
13
13
13
13
13
13
14
14
14
14
17
17
17
19
19
19
19
21
22
22
22
22
22
22
23
23
24
25
25
25
25
25
26
26
27
27
27
27
28
28
28
28
28
28
28
29
29
29
30
30
30
31
31
31
31
31
32
32
33
33
34
34
34
35
35
38
39
43
43
45
49
49
51
53
54
56
57
57
57
58
61
61
70
74
74
80
83
83
87
88
89
90
91
92
93
96
96
97
97
97
97
98
99
104
105
110
111
113
118
121
122
123
124
127
128
156
160
161
161
162
163
173
175
177
192
195
197
1
1
1
1
1
4
4
5
5
5
5
5
5
5
5
5
6
7
8
9
11
11
12
12
12
13
13
14
14
14
14
15
15
17
17
19
19
19
20
21
21
21
22
22
22
22
22
22
23
23
24
24
25
25
26
26
26
26
27
27
28
28
28
28
29
29
29
29
29
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
33
34
34
34
35
35
36
36
37
40
40
44
44
50
50
52
54
55
57
58
58
58
59
62
62
71
74
74
75
75
81
84
84
87
88
89
90
91
92
93
94
97
97
98
98
100
105
106
111
111
112
114
118
121
122
122
124
126
126
129
134
157
161
162
162
163
164
174
176
176
178
193
196
197
198
1
5
5
5
5
5
5
5
5
6
6
6
7
7
7
8
8
8
8
9
10
11
11
12
12
12
12
13
14
14
15
15
15
16
17
17
17
19
19
19
19
19
19
20
21
22
22
22
22
23
24
24
24
24
24
25
25
25
25
26
27
27
27
28
28
28
28
28
28
29
29
29
29
29
29
29
29
30
30
30
31
31
31
31
32
32
32
32
32
32
33
34
34
35
35
35
36
37
37
37
37
38
38
40
41
45
45
51
51
53
53
55
57
58
59
59
59
60
63
63
72
75
75
76
76
81
82
85
85
88
89
89
89
89
90
91
92
93
94
94
96
97
98
101
101
106
107
112
113
115
121
122
123
124
127
130
134
135
158
162
163
163
164
165
177
177
179
194
196
198
199
1
1
4
5
5
5
6
6
7
7
7
7
7
8
8
11
12
12
13
13
13
13
14
14
14
14
14
14
15
15
15
15
16
16
16
17
19
19
19
19
20
20
20
20
20
21
21
21
22
22
22
22
22
23
24
24
24
24
26
26
26
26
27
27
27
27
27
27
27
28
28
28
28
28
28
29
29
29
29
29
29
29
30
30
30
30
31
31
31
32
33
33
33
33
33
33
33
34
34
34
35
35
37
37
37
37
38
38
38
38
40
40
42
44
44
46
46
52
52
54
54
56
58
59
59
60
60
60
61
61
64
64
73
76
76
77
86
86
87
88
89
90
90
90
90
91
92
93
94
97
98
102
106
108
113
114
116
118
122
123
124
127
135
136
159
163
164
164
165
166
178
178
180
195
199
200
1
1
4
5
5
5
5
6
7
7
7
8
8
9
9
11
11
11
12
12
12
13
13
14
14
14
15
16
16
17
17
17
19
19
20
21
21
21
21
21
21
22
22
22
23
24
26
26
26
26
27
27
27
27
27
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
31
31
31
31
31
31
31
32
32
32
33
33
33
34
34
34
34
34
34
34
35
36
36
37
37
37
37
37
38
39
39
43
45
45
47
51
53
53
53
55
55
57
59
60
60
61
61
61
62
62
65
65
74
74
77
78
78
87
87
88
89
90
91
91
91
91
92
92
101
103
106
107
109
114
115
117
123
126
127
128
130
136
160
164
165
165
166
167
179
179
181
196
200
201
1
1
1
1
4
5
5
5
5
5
5
6
7
9
9
10
10
13
13
14
14
14
14
14
14
14
15
15
16
16
16
17
18
18
21
21
21
21
21
22
22
22
22
22
23
23
24
24
24
24
25
26
26
26
26
27
27
27
27
28
28
28
28
28
29
29
29
29
29
29
29
29
29
30
30
30
30
30
31
31
31
31
31
32
32
32
32
32
32
33
34
34
34
34
34
35
35
35
36
37
37
37
37
39
40
40
40
40
40
44
46
46
48
52
54
54
56
58
60
60
60
61
61
62
62
62
63
63
66
66
75
75
76
78
79
79
85
88
88
89
90
91
92
92
92
93
94
94
104
108
110
115
116
118
121
124
126
127
127
129
136
161
165
166
166
166
167
168
180
180
182
197
201
202
1
1
1
4
4
5
5
5
5
5
5
5
6
6
7
7
7
10
10
11
11
11
11
12
12
13
13
13
14
14
14
14
15
15
16
16
16
17
17
17
19
19
19
22
22
22
23
23
23
23
24
24
24
24
24
24
25
25
25
25
26
27
27
27
27
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
30
30
30
30
31
31
31
31
31
31
31
32
32
32
32
33
33
34
35
35
35
36
36
36
37
37
37
37
38
38
38
38
40
41
41
45
47
49
53
55
55
57
59
61
61
61
63
63
64
64
67
67
76
76
77
79
80
80
85
86
89
89
90
91
91
92
93
93
93
94
103
103
103
103
105
109
111
116
117
118
119
122
127
128
128
130
130
134
162
166
167
167
167
168
169
181
181
183
198
202
203
1
4
5
5
5
5
5
5
6
6
6
7
7
8
8
11
11
11
12
12
13
13
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
16
16
16
17
17
18
18
20
20
22
22
22
22
22
23
23
23
23
24
24
24
24
24
25
25
25
26
26
26
26
26
26
26
27
27
28
28
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
31
31
31
31
31
31
32
32
32
32
32
32
32
33
33
34
34
34
35
35
35
36
36
37
37
37
38
38
38
39
39
40
41
42
42
46
48
50
56
56
58
60
62
62
62
64
64
65
65
66
66
68
68
78
78
78
80
81
81
85
85
86
87
87
88
90
90
90
90
91
92
92
93
94
94
94
94
103
103
104
104
106
110
112
117
118
120
123
127
130
131
131
134
135
163
167
168
168
169
170
182
182
184
199
203
204
1
1
5
5
5
5
6
6
6
7
7
9
9
9
11
11
11
12
12
12
12
12
13
13
13
13
14
14
14
14
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
19
19
19
19
21
21
21
21
22
22
22
22
23
23
24
24
24
24
24
24
24
25
25
25
26
26
26
26
26
27
27
27
28
28
28
28
28
29
29
30
30
30
30
30
31
31
31
31
31
31
31
31
32
32
32
32
33
34
34
35
35
35
35
36
37
38
38
38
38
39
40
42
43
43
49
51
57
57
59
61
63
63
65
65
66
66
67
67
69
79
79
79
79
81
82
82
84
84
85
86
86
86
87
88
88
88
89
91
91
92
93
93
94
94
103
103
104
105
105
107
111
113
118
119
121
124
124
127
130
131
132
132
135
136
164
168
169
169
170
171
183
183
185
200
204
205
1
2
5
5
5
5
5
6
6
7
7
7
8
9
9
10
11
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
17
17
17
17
19
19
20
20
21
21
21
22
22
22
22
22
23
24
24
24
24
24
24
24
24
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
28
28
28
28
28
28
29
29
29
29
29
30
31
31
31
31
31
31
31
32
32
32
32
35
35
36
36
37
37
37
38
39
39
39
40
41
41
43
43
44
44
44
48
50
50
52
52
58
60
62
64
64
66
66
67
67
68
68
70
80
80
81
81
82
83
83
83
85
85
86
87
87
87
88
89
89
89
90
92
92
92
98
98
104
105
108
112
114
119
120
121
122
122
124
124
125
131
132
135
136
137
165
169
170
170
171
172
184
184
186
201
205
206
1
1
1
1
1
1
1
1
1
3
5
5
5
5
5
5
6
6
6
7
7
7
7
8
8
8
9
9
9
9
10
10
11
11
11
12
13
13
14
14
14
14
15
15
15
15
16
16
16
16
16
16
16
17
17
18
21
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
23
24
24
24
24
25
25
25
25
25
26
26
26
26
26
26
26
27
27
27
27
28
28
28
29
30
30
30
30
31
31
31
31
31
31
31
32
32
32
33
34
35
35
36
37
37
37
38
38
40
40
40
41
42
42
44
44
45
45
45
49
51
51
53
53
55
57
59
59
60
61
61
64
65
65
66
67
67
68
68
69
70
71
81
81
81
83
84
84
84
84
86
86
87
88
88
88
89
90
90
90
91
93
93
93
99
105
109
113
115
118
120
121
122
123
123
125
132
135
136
137
138
166
170
171
171
172
173
185
185
187
202
206
207
1
1
1
1
1
1
1
1
2
2
4
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
7
7
8
8
9
9
9
9
10
10
10
10
10
11
12
14
14
14
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
19
21
21
22
22
22
22
22
23
23
23
23
24
24
24
25
25
26
26
26
26
26
26
26
26
26
27
27
27
27
28
29
29
29
30
31
31
31
31
31
31
31
32
32
32
32
32
32
33
34
34
35
35
35
36
36
37
37
38
39
41
41
41
42
43
43
45
45
46
46
46
50
52
52
54
54
56
58
60
60
61
62
62
65
66
66
67
68
68
69
69
70
71
72
81
84
84
85
85
85
85
87
87
88
89
89
89
90
91
91
91
92
94
94
94
98
98
100
103
110
114
116
121
121
122
123
123
123
124
127
135
136
136
137
138
167
171
172
172
173
174
186
186
188
203
207
208
1
1
1
1
3
3
4
5
5
5
5
5
5
6
6
7
7
7
7
7
7
7
8
8
8
9
9
9
9
9
10
10
11
11
11
11
11
11
11
11
12
12
13
13
14
14
14
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
22
22
23
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
28
28
29
29
29
29
29
29
29
30
30
31
31
32
32
32
32
32
33
33
33
33
34
35
35
35
36
37
37
37
37
38
38
38
39
40
40
42
42
42
43
45
45
46
46
47
47
51
55
55
57
59
61
61
62
63
63
66
66
67
67
68
68
69
70
70
70
71
72
72
73
74
83
85
85
85
85
85
85
85
85
86
86
86
86
88
88
89
90
90
90
91
92
92
92
93
95
95
98
98
98
99
103
104
111
115
117
121
122
122
123
124
124
124
125
125
128
130
135
136
137
137
138
168
172
173
173
174
175
187
187
189
204
208
209
1
1
2
4
5
5
5
5
5
5
7
7
7
7
7
8
8
8
8
8
8
9
9
9
9
9
10
10
10
10
11
11
11
11
12
14
15
15
16
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
21
21
22
23
23
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
28
28
29
29
29
29
29
29
29
30
30
31
31
31
31
31
31
31
32
33
33
33
33
33
34
35
36
36
37
38
38
38
39
40
41
41
43
43
44
46
46
47
47
48
52
56
56
60
64
64
67
67
68
68
69
70
71
71
71
71
71
72
72
73
73
74
74
75
76
76
83
85
85
85
86
86
86
86
86
86
87
87
87
87
89
89
90
90
91
91
93
93
93
96
96
98
98
98
99
99
100
103
105
112
116
118
122
122
124
124
124
125
125
125
125
126
131
135
137
138
138
169
173
174
174
175
176
186
188
188
190
205
209
210
1
3
5
5
6
6
7
7
7
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
9
9
10
10
11
11
11
11
11
12
12
13
13
16
16
16
16
17
17
17
17
17
18
18
18
18
18
18
19
19
19
19
19
19
19
20
20
22
23
23
24
24
25
25
25
25
26
26
26
26
26
26
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
29
29
30
31
31
31
31
31
32
32
32
32
32
33
33
33
33
34
34
34
34
34
34
34
34
35
35
35
36
36
36
37
37
39
39
40
41
42
42
44
44
45
47
47
48
48
49
53
57
57
61
65
65
68
68
69
70
71
72
72
72
72
72
73
73
74
74
75
75
76
77
77
84
85
85
85
85
86
86
87
87
87
87
87
87
88
88
88
88
89
92
93
94
97
97
98
99
100
100
103
104
106
113
117
119
125
125
125
126
126
126
127
127
132
136
138
139
170
174
175
175
176
177
189
189
191
206
210
211
1
1
1
1
1
4
5
5
5
5
5
5
5
7
7
7
7
7
8
8
8
8
9
9
9
9
9
9
10
10
10
10
10
11
11
11
11
11
13
13
14
14
14
17
17
17
18
18
18
18
19
19
19
19
19
19
19
19
20
20
20
21
21
23
24
24
24
24
24
25
25
25
25
26
26
26
26
26
26
26
26
26
27
27
27
27
27
28
28
28
28
28
28
28
28
29
29
29
29
29
29
30
31
31
32
32
32
32
32
33
34
34
34
34
35
35
35
35
35
35
35
36
36
36
37
37
37
37
40
40
41
42
43
45
45
46
48
49
49
50
54
58
58
62
66
66
69
70
70
71
72
72
72
73
73
73
73
73
74
74
74
75
75
76
76
77
77
78
78
85
85
85
86
86
87
87
88
88
88
88
89
89
89
90
91
94
95
98
98
98
99
100
101
105
106
114
118
120
126
126
126
127
128
128
130
137
139
171
175
176
176
177
178
190
190
192
207
211
212
1
1
1
1
1
1
4
4
5
5
5
5
6
7
7
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
10
10
10
11
11
11
11
11
11
11
11
12
12
13
13
14
14
15
16
16
17
18
18
18
19
19
19
19
19
19
19
19
19
20
20
20
20
20
21
21
21
21
22
22
23
24
24
24
24
24
25
25
25
25
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
30
30
31
31
31
32
33
33
33
33
34
34
34
34
34
34
35
36
36
36
36
37
37
37
38
38
41
41
42
43
44
46
46
47
49
50
50
51
55
59
59
63
67
67
70
71
71
72
73
73
73
74
74
75
76
76
77
77
78
78
79
79
81
85
85
86
86
86
87
87
88
88
89
89
89
89
90
90
90
95
96
99
99
100
101
106
115
119
121
122
122
127
128
129
130
131
132
137
172
176
177
177
178
179
191
191
193
208
212
213
1
1
1
2
4
4
5
5
5
5
5
5
7
7
7
7
8
8
8
8
9
9
9
9
9
10
10
10
10
11
11
11
11
12
12
12
12
12
13
13
13
13
14
15
17
17
18
18
18
18
18
18
19
19
19
19
19
19
19
20
20
20
20
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
23
23
23
23
24
24
24
24
24
25
25
25
25
26
26
26
26
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
30
30
30
31
31
31
32
32
32
34
34
35
35
35
35
35
35
36
37
37
37
37
37
39
39
42
42
44
45
45
47
47
49
50
51
51
52
56
60
60
64
67
67
68
68
71
72
72
73
74
74
74
75
75
76
77
77
78
78
79
79
79
82
82
82
87
87
87
88
89
89
89
90
90
90
91
91
97
100
100
101
102
106
107
116
120
122
123
123
124
124
124
128
129
130
131
132
139
173
177
178
178
179
180
192
192
194
209
213
214
1
1
2
3
4
4
4
5
5
5
5
6
7
7
7
7
7
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
10
10
10
10
10
10
11
11
11
11
11
11
12
13
13
13
13
16
16
16
17
18
18
18
19
19
19
19
19
19
19
20
20
20
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
24
24
24
24
25
25
25
25
26
26
26
26
26
26
26
27
27
27
27
27
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
31
31
31
31
32
32
32
32
34
35
35
36
37
37
37
38
38
38
38
40
40
40
43
43
44
45
46
46
46
48
48
48
50
51
51
52
52
53
53
57
61
61
65
68
68
69
69
72
73
73
74
75
75
75
76
76
77
77
78
78
79
79
79
80
80
80
81
81
81
83
88
88
88
89
89
90
90
90
92
95
98
101
101
102
102
106
107
108
117
121
123
125
125
125
125
129
130
131
131
131
132
132
133
139
174
178
179
179
180
181
193
193
195
210
214
215
2
3
4
4
4
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
11
11
11
11
12
12
12
13
13
13
13
13
13
14
14
14
17
17
17
17
18
18
18
18
18
19
19
19
19
19
19
19
20
21
21
21
21
21
22
22
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
29
29
29
29
29
29
30
30
30
30
30
30
30
30
31
31
31
31
32
32
32
34
34
34
35
35
35
37
37
37
38
38
41
41
41
44
44
45
46
47
47
47
49
49
49
51
52
52
53
53
54
54
58
62
62
66
69
69
70
72
73
74
75
76
76
76
77
77
79
79
79
80
80
81
81
81
82
82
82
83
83
84
88
88
90
93
99
101
102
102
102
106
107
108
109
118
122
123
124
125
125
126
126
126
130
131
132
133
133
134
175
179
180
180
181
182
194
194
196
211
215
216
1
1
1
3
4
4
4
4
5
5
5
5
5
6
6
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
11
11
11
11
11
11
12
12
12
13
13
13
13
13
14
14
15
16
16
17
18
18
18
18
18
19
19
19
19
20
20
20
20
21
21
21
21
21
21
21
22
22
22
22
22
22
23
23
24
24
24
24
24
24
24
24
24
25
25
25
25
25
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
30
30
30
30
30
31
31
31
31
31
31
31
31
32
32
33
33
35
37
37
37
38
38
38
42
42
42
43
45
45
45
46
47
48
48
50
50
50
52
53
53
54
54
55
55
59
63
63
67
67
70
71
71
73
74
74
74
74
75
76
77
77
77
78
78
79
80
80
80
80
81
81
82
83
83
83
83
84
84
85
85
88
90
91
94
100
101
103
103
107
108
109
119
123
124
125
126
126
126
131
131
132
132
133
134
134
176
180
181
181
182
183
195
195
197
212
216
217
1
1
1
1
2
2
4
4
4
5
5
5
5
5
5
6
6
7
7
7
7
7
7
8
8
8
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
11
11
11
11
11
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
14
14
14
15
18
18
18
18
19
19
19
19
19
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
23
23
24
24
24
24
24
24
24
25
25
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
28
29
29
29
29
29
29
29
29
29
29
30
30
30
31
31
31
31
31
32
32
32
32
32
32
32
33
33
33
34
34
34
34
37
37
37
38
38
39
43
43
44
46
46
47
48
51
51
51
53
53
53
55
55
56
56
60
62
62
64
64
68
68
71
72
72
74
75
75
75
77
78
78
78
79
79
80
81
81
81
81
82
82
83
84
84
84
85
85
85
86
86
90
90
91
92
95
101
104
104
108
120
124
124
126
132
133
133
134
177
181
182
182
183
184
196
196
198
213
217
218
1
1
1
1
3
3
4
4
5
5
5
5
5
6
7
7
7
7
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
12
12
12
12
13
13
14
14
14
14
15
16
18
19
20
20
20
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
23
23
23
23
23
23
24
24
24
25
25
25
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
28
28
28
28
28
28
29
29
29
29
29
29
29
29
30
30
30
30
30
30
31
31
31
31
31
31
31
32
32
32
33
33
33
34
35
35
35
35
35
37
37
37
37
38
40
44
44
45
47
47
48
49
52
52
52
54
54
54
56
57
57
61
63
63
65
69
69
72
73
73
75
75
76
76
76
78
79
79
79
80
80
81
81
81
81
82
82
82
82
82
83
83
84
85
85
85
85
85
85
85
86
86
87
87
92
93
96
102
105
105
121
125
126
127
132
133
134
134
178
182
183
183
184
185
197
197
199
214
218
219
1
2
4
4
4
4
5
5
6
7
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
9
9
10
10
10
10
10
11
11
11
11
11
11
12
12
12
12
13
13
13
13
14
14
14
14
15
15
15
15
15
16
16
19
19
19
20
21
21
21
21
21
21
21
21
21
21
22
22
23
23
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
26
26
26
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
29
29
29
29
29
29
29
29
29
30
30
30
30
31
31
31
31
31
31
31
31
31
31
32
32
33
33
33
33
33
33
33
34
34
34
35
35
35
36
36
37
38
41
45
45
48
48
49
50
53
53
53
55
55
55
57
58
58
62
64
64
66
69
72
73
74
74
74
77
77
77
77
78
79
80
80
80
81
81
82
82
82
83
83
83
83
83
83
84
84
85
86
86
86
86
86
87
87
88
93
94
97
103
106
106
106
122
126
126
128
131
133
135
139
179
183
184
184
185
186
198
198
200
215
219
220
1
1
1
3
4
5
5
5
5
6
7
7
7
8
8
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
14
14
15
15
16
16
16
16
17
17
17
17
19
19
21
21
21
21
21
21
21
21
22
22
22
22
23
23
23
24
24
24
24
24
24
24
24
24
25
25
25
25
26
26
26
26
26
27
27
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
30
30
30
31
31
31
31
31
31
32
32
32
32
32
33
33
34
34
35
35
35
37
37
37
42
44
44
46
46
49
49
50
51
54
54
54
56
56
58
59
59
62
63
65
66
67
70
70
72
73
74
74
74
74
75
75
75
77
78
78
79
80
81
81
81
81
82
82
83
83
83
83
84
84
84
84
84
85
85
85
87
87
88
88
88
88
94
95
98
101
102
104
107
107
107
123
127
129
132
133
134
137
139
140
180
184
185
185
186
187
199
199
201
216
220
221
1
1
1
1
2
5
5
5
6
7
7
7
7
8
9
9
9
9
9
10
10
10
10
10
10
10
11
11
11
11
11
11
11
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
15
15
15
15
16
16
17
17
17
19
20
21
21
21
21
21
22
22
22
23
23
23
23
23
23
23
23
23
23
24
24
24
24
25
25
25
25
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
31
31
31
31
31
31
31
31
31
32
32
32
32
33
33
34
35
35
35
35
36
36
37
38
38
43
45
45
47
50
51
52
55
55
55
57
57
59
60
60
63
64
66
67
68
71
71
71
71
72
72
73
74
74
74
75
75
75
75
76
76
76
77
79
79
80
80
80
81
82
82
82
83
83
83
83
84
84
85
85
85
85
85
86
86
86
86
89
89
95
95
96
99
102
105
108
108
108
124
128
130
131
132
133
135
135
138
140
181
185
186
186
187
188
200
200
202
217
221
222
1
1
2
3
4
4
5
7
7
7
7
8
8
8
8
8
9
9
9
9
9
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
12
12
12
12
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
15
16
16
18
19
20
20
21
21
21
22
22
22
22
23
23
23
23
23
23
23
23
24
24
24
26
26
26
26
27
27
27
27
27
27
28
28
28
28
28
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
32
32
32
32
33
34
34
34
35
36
36
37
37
39
44
46
46
47
48
49
51
51
52
53
53
53
56
56
57
58
58
60
61
61
64
67
68
69
70
72
72
72
72
72
72
73
73
74
75
75
75
76
76
76
76
77
77
77
79
80
80
81
81
81
82
83
83
83
84
84
84
85
85
85
85
86
86
86
86
87
87
88
89
96
96
97
97
100
100
101
106
109
109
109
125
129
131
133
134
138
182
186
187
187
188
189
201
201
203
218
222
223
1
1
3
4
4
5
5
5
5
5
5
6
7
7
7
7
7
7
8
8
8
8
8
9
9
10
10
10
10
11
11
11
11
12
12
12
12
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
15
15
15
16
16
16
17
17
17
17
17
18
18
19
19
19
19
20
21
21
21
21
21
22
22
23
23
23
23
23
23
23
23
24
24
24
24
24
25
25
27
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
33
33
33
34
34
35
35
35
36
37
37
37
38
38
40
45
47
48
49
50
52
52
53
54
54
54
57
57
58
59
59
61
62
62
68
68
69
70
70
71
72
72
73
73
73
73
74
74
74
74
75
75
76
76
77
77
77
77
78
78
78
79
81
81
82
82
82
83
84
84
84
85
85
85
85
85
86
86
86
86
87
87
87
87
88
88
89
97
101
101
102
106
107
110
110
125
126
130
132
135
140
183
187
188
188
189
190
202
202
204
219
223
224
1
1
1
1
1
1
4
4
5
6
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
12
12
12
12
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
18
19
19
19
20
20
20
21
21
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
25
25
25
25
25
26
26
26
27
27
28
28
28
28
28
29
29
29
29
29
29
30
30
30
30
30
30
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
34
34
34
35
37
37
37
38
38
38
38
39
41
46
48
49
50
51
53
53
54
55
55
55
58
58
59
59
60
60
61
62
63
63
63
63
69
69
70
71
71
72
73
73
74
74
74
74
74
75
75
75
76
76
77
77
77
77
78
79
79
79
79
79
82
82
83
83
83
84
85
85
85
86
86
86
86
87
87
87
88
88
88
89
96
98
102
102
102
107
108
109
111
111
126
126
126
127
131
133
135
140
184
188
188
189
189
190
191
203
203
205
220
224
225
1
1
2
4
4
5
5
5
5
5
7
7
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
10
10
10
10
11
11
11
11
11
11
12
12
12
13
13
13
13
13
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
17
17
17
17
17
17
18
19
20
20
20
21
21
22
22
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
26
26
26
26
26
26
26
26
27
27
27
27
27
28
28
28
29
29
29
29
29
30
30
30
30
31
31
31
31
31
31
31
32
32
32
32
33
33
33
33
33
33
33
33
34
34
34
34
34
34
35
35
35
35
37
37
38
38
38
39
39
40
42
49
51
52
55
56
56
59
59
60
60
61
61
62
63
64
64
64
64
70
70
71
72
72
73
73
74
74
74
75
75
75
75
76
76
77
77
77
78
79
79
80
80
80
81
81
83
83
84
84
84
84
85
85
85
86
86
86
87
87
88
88
88
89
89
90
99
102
103
103
106
108
109
112
112
126
127
127
128
132
134
135
185
188
189
190
190
191
192
204
204
206
221
225
226
1
1
1
3
4
4
4
5
5
5
5
6
7
7
8
8
8
8
8
8
9
9
9
9
9
9
9
9
10
10
10
10
11
11
11
11
11
11
12
12
12
12
12
12
12
13
14
14
14
14
14
15
15
15
15
15
15
15
15
16
16
16
16
16
16
17
17
17
17
17
17
17
18
18
18
19
19
20
20
21
21
21
21
21
22
22
22
22
23
23
23
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
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
32
32
32
32
32
32
33
33
33
33
34
34
34
34
34
34
35
35
35
35
36
36
36
37
37
38
38
40
40
41
43
50
50
52
52
53
56
57
57
58
58
60
60
61
61
62
63
64
65
65
65
65
67
72
73
73
75
75
75
76
76
77
77
77
77
77
77
77
77
78
78
78
78
78
78
78
78
79
80
81
81
81
81
81
81
81
82
83
83
84
85
85
85
85
86
86
86
87
87
87
88
88
89
90
90
91
100
102
104
104
107
109
110
113
113
124
127
127
129
133
133
135
186
190
191
191
192
193
205
205
207
222
226
227
1
1
1
1
2
4
5
5
5
6
7
7
9
9
9
9
10
10
10
10
10
10
10
11
11
11
12
12
12
12
12
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
15
15
16
16
16
16
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
19
19
20
20
20
21
21
21
21
21
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
24
24
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
30
30
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
34
34
34
34
35
35
35
35
36
36
36
36
37
37
37
37
37
37
38
38
40
41
41
42
42
44
44
44
48
51
51
53
53
54
56
57
58
58
58
59
59
61
62
63
64
65
66
66
67
68
69
69
72
72
73
74
74
75
75
76
77
77
77
78
78
78
78
78
79
79
79
79
79
79
80
81
82
82
82
82
82
83
83
84
84
84
84
85
85
86
87
87
88
88
88
88
89
89
89
89
90
91
91
92
101
105
105
107
109
110
111
114
114
125
130
134
136
187
191
192
192
193
194
206
206
208
223
227
228
1
1
1
3
7
8
8
8
8
8
9
10
10
10
10
11
11
11
11
11
12
12
12
12
12
12
12
12
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
15
16
16
16
16
16
17
17
17
17
17
17
17
17
18
18
18
19
19
19
19
19
19
20
20
21
21
21
21
21
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
28
28
28
28
29
29
29
29
29
29
29
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
33
33
34
34
34
34
34
34
35
36
36
36
37
37
37
37
37
37
38
38
38
41
42
42
43
43
45
45
45
49
52
52
54
54
55
57
58
59
59
59
60
60
62
63
64
65
66
67
67
68
69
70
70
70
70
70
70
71
71
73
73
74
75
75
75
76
77
77
77
78
78
78
78
78
78
78
78
79
79
79
79
80
80
80
80
80
81
81
81
82
83
83
83
83
83
84
86
87
88
88
88
89
89
89
89
90
90
90
90
91
92
92
93
102
106
106
107
109
110
111
112
115
115
125
131
135
137
188
192
193
193
194
195
207
207
209
224
228
229
1
5
5
5
7
7
7
7
9
9
9
10
10
10
10
10
10
11
11
12
12
12
12
12
12
13
13
13
13
13
13
14
14
14
14
14
14
14
15
15
15
16
16
17
17
17
17
17
17
17
17
17
17
17
18
19
19
19
19
19
19
20
20
20
20
21
21
21
22
22
22
22
23
23
23
23
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
28
28
29
29
29
29
30
30
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
33
33
33
33
33
34
34
34
34
34
34
35
35
36
36
37
37
37
38
38
38
38
38
39
39
39
42
43
43
44
44
46
46
46
50
55
55
56
56
58
58
58
58
59
59
59
60
60
60
61
62
63
64
65
66
66
67
68
68
69
70
70
71
71
71
71
71
71
72
72
74
74
74
75
76
76
77
78
78
78
78
79
79
79
79
79
79
79
79
80
80
80
80
81
81
81
82
82
83
84
84
84
87
88
88
89
89
89
90
90
90
90
90
91
91
92
93
93
94
103
107
107
110
111
113
116
116
132
136
138
140
189
193
194
194
195
196
208
208
210
225
229
230
1
1
1
1
5
7
7
7
8
8
8
8
9
10
10
10
10
11
11
11
11
12
12
12
12
12
13
13
13
13
14
14
14
14
15
15
15
16
16
16
16
16
16
17
17
17
17
17
18
18
19
19
19
19
20
20
20
20
20
21
21
21
21
21
22
23
23
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
28
28
28
28
29
29
31
31
31
31
31
31
32
32
32
32
32
34
34
34
34
34
35
35
36
36
36
37
37
38
38
38
39
39
39
39
40
40
40
43
44
44
47
47
51
56
56
57
57
59
59
59
60
60
60
61
61
61
62
63
64
65
66
67
67
68
69
69
70
70
72
72
72
72
72
72
72
72
73
73
74
75
75
75
75
76
77
77
78
78
78
79
79
79
79
80
80
80
80
80
80
80
81
81
81
81
81
82
82
83
85
88
89
89
90
90
90
90
91
91
92
92
93
94
94
95
102
104
107
108
108
109
111
114
117
117
126
126
133
137
138
139
140
141
190
194
195
195
196
197
209
209
211
226
230
231
1
1
1
1
1
1
5
5
5
5
7
7
7
7
7
9
9
9
10
10
10
11
12
12
12
13
13
13
13
13
14
14
14
14
14
14
14
14
15
15
15
16
16
17
17
17
17
17
17
17
17
18
18
18
18
19
19
19
20
21
21
22
22
23
23
23
23
23
24
25
25
25
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
31
31
31
32
32
32
32
33
34
35
35
36
36
37
37
37
38
38
39
39
39
40
40
40
40
41
41
41
44
45
45
48
48
52
57
57
58
58
60
60
60
61
61
62
62
63
64
65
66
66
66
67
68
68
68
69
70
70
71
72
73
73
73
73
73
73
73
73
74
74
75
75
76
77
78
78
79
79
79
80
80
80
80
81
81
81
81
81
81
81
82
82
83
83
86
86
89
90
90
91
91
92
92
93
93
94
95
96
96
103
105
109
109
110
115
118
118
127
127
127
127
134
138
139
140
141
191
195
196
196
197
198
210
210
212
227
231
232
1
1
1
1
2
7
7
7
8
8
8
8
8
9
10
10
10
10
11
12
12
12
12
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
16
16
16
16
16
16
17
17
17
18
18
18
19
19
19
19
19
19
20
20
20
21
21
21
21
22
22
23
23
23
23
23
24
24
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
31
31
32
33
33
34
36
37
37
38
38
38
39
39
40
40
40
41
41
41
41
42
42
42
45
46
46
49
49
53
58
58
59
59
61
61
62
63
63
63
64
64
65
66
66
67
67
68
69
69
69
69
70
71
71
72
72
74
74
75
75
75
76
77
77
77
78
78
79
79
79
80
80
80
80
81
81
81
81
81
82
82
82
82
82
82
83
83
84
87
90
91
92
92
93
93
94
94
95
96
97
97
102
106
107
110
110
111
116
119
119
127
127
127
127
128
128
135
135
139
139
141
192
196
197
197
198
199
211
211
213
228
232
233
1
1
2
2
2
3
5
5
5
7
7
8
9
9
9
9
10
10
10
11
12
12
12
13
13
13
13
13
13
14
14
14
14
14
14
14
14
15
15
15
15
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
20
20
21
22
22
23
23
23
23
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
27
27
27
27
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
30
31
31
31
31
31
31
31
33
33
37
37
38
38
39
39
39
41
41
41
42
42
42
42
43
43
43
45
45
46
47
47
50
50
54
59
59
60
60
62
62
63
64
64
64
65
65
65
66
67
67
68
68
68
69
70
70
70
71
72
72
73
75
75
75
75
75
76
78
78
78
78
79
79
80
80
80
81
81
82
82
82
83
83
83
83
83
84
84
84
84
84
85
85
88
91
92
93
93
94
94
95
95
96
97
98
103
107
109
111
111
117
120
120
126
128
128
129
129
136
136
140
141
142
193
197
198
198
199
200
212
214
229
233
234
1
1
1
2
3
3
3
4
5
5
8
8
8
8
8
8
9
9
9
10
10
10
10
10
10
11
12
12
13
14
15
15
15
15
15
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
22
22
23
23
23
24
24
24
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
31
31
31
31
33
37
37
38
39
39
40
40
40
40
40
42
42
42
43
43
43
43
44
44
44
46
46
47
48
51
51
55
60
60
60
61
61
61
62
63
64
65
65
65
66
66
66
67
67
67
68
68
69
69
69
70
70
70
71
71
71
72
73
73
74
74
75
76
77
77
77
77
78
78
78
78
79
80
80
80
80
81
81
81
81
82
83
83
83
84
85
85
85
85
86
88
88
88
89
92
93
94
94
94
95
95
96
96
97
97
98
99
108
112
112
118
121
127
127
127
129
129
137
137
141
141
143
194
198
199
199
200
201
213
215
230
234
235
1
1
1
2
3
4
4
4
5
5
5
5
7
9
9
9
9
9
9
10
10
10
10
10
11
11
11
12
13
13
13
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
18
18
18
19
19
19
19
19
19
20
20
20
20
21
21
21
21
21
21
21
22
22
23
24
24
24
24
25
25
25
25
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
31
31
31
31
31
31
33
34
37
37
39
40
40
41
41
41
41
41
42
42
43
43
44
44
44
44
45
45
45
47
47
48
49
52
52
56
61
61
61
62
63
64
65
66
66
66
67
68
68
68
69
69
69
70
70
70
70
71
71
71
71
72
72
73
74
74
75
75
76
77
78
79
79
79
80
80
81
81
81
82
82
82
84
84
84
84
85
86
87
89
89
89
89
90
93
94
95
95
95
95
96
96
97
97
98
99
100
103
109
113
113
119
120
120
122
127
128
128
138
138
142
144
195
199
200
200
201
202
214
216
231
235
236
1
1
1
3
3
4
4
5
5
5
5
5
6
6
8
9
9
10
10
10
10
10
10
11
11
11
11
12
12
12
12
12
13
13
13
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
16
16
16
16
17
17
17
17
17
17
19
19
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
21
21
21
22
22
22
22
23
23
23
23
23
23
23
23
23
23
24
24
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
31
31
31
31
31
31
31
32
32
34
37
37
40
40
41
41
42
42
42
42
42
42
43
43
44
44
45
45
45
46
46
46
48
49
50
53
53
57
62
62
62
63
63
63
63
64
64
65
65
66
66
66
67
67
67
67
67
68
68
69
69
69
70
70
71
71
72
72
72
73
73
73
73
73
74
74
75
75
75
75
76
77
78
79
80
80
80
82
83
85
85
85
86
86
87
88
90
90
90
90
91
94
95
96
96
96
97
97
98
98
99
100
101
103
107
109
110
114
114
120
121
123
127
128
128
133
139
143
145
196
200
201
201
202
203
212
215
217
232
236
237
1
5
5
5
5
6
6
6
7
7
7
9
9
9
9
10
10
10
11
11
11
12
12
12
12
12
13
13
13
13
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
18
18
18
18
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
21
21
21
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
24
24
24
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
30
30
30
30
31
31
31
31
31
31
31
32
32
32
32
33
34
35
37
37
37
41
41
42
42
43
43
43
43
44
44
45
45
46
46
46
47
47
47
49
50
51
54
54
58
62
62
63
63
64
64
64
64
64
65
65
65
65
66
66
66
66
67
67
67
67
67
68
68
68
68
68
68
68
70
70
70
71
71
71
72
73
73
73
73
74
74
74
75
75
75
76
76
76
78
79
80
82
82
83
84
86
86
88
89
90
91
91
92
95
96
97
97
97
98
98
99
99
100
101
102
109
111
115
115
121
122
124
127
127
128
134
135
140
144
146
200
201
202
202
203
204
211
213
216
218
233
237
238
1
1
1
1
5
5
5
6
7
7
8
8
8
8
9
9
9
9
9
10
10
10
11
11
11
13
13
13
13
13
14
14
15
15
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
18
18
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
24
24
24
24
25
25
25
25
25
25
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
32
32
32
32
33
33
34
34
35
35
37
37
42
42
43
43
44
44
44
44
45
45
46
46
47
47
47
48
48
49
50
51
52
55
55
59
63
63
64
64
64
65
65
65
65
66
66
66
66
66
66
67
67
67
68
68
68
68
68
69
69
69
69
69
69
69
70
70
71
71
71
72
72
72
73
73
74
74
75
75
75
76
76
76
77
77
78
78
79
80
81
81
83
83
84
84
85
85
89
90
90
90
91
91
91
91
92
93
93
96
97
98
98
98
99
99
100
100
101
102
103
112
116
116
122
123
125
127
128
129
135
136
136
141
145
147
196
201
202
203
203
204
205
214
217
219
234
238
239
1
1
1
1
1
1
1
2
4
4
5
5
5
5
5
6
7
7
7
7
8
8
9
9
9
9
9
9
9
10
10
11
11
12
13
13
13
13
13
14
14
14
15
16
16
16
16
16
17
17
17
17
17
18
18
18
18
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
22
22
22
22
23
23
23
23
23
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
27
27
27
27
27
27
27
28
28
28
28
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
33
34
34
34
34
35
35
44
44
45
45
45
45
46
46
47
47
47
47
48
48
48
49
49
50
51
52
53
54
54
56
56
60
64
64
65
65
66
66
66
66
66
66
67
67
67
68
68
68
68
68
69
69
69
69
69
70
70
70
70
70
70
70
70
71
71
72
72
72
72
73
73
73
73
74
75
75
75
76
76
76
77
77
77
78
78
78
79
80
80
80
82
82
83
84
85
86
90
92
92
93
94
94
97
98
99
99
100
100
101
101
102
102
103
104
104
113
117
117
123
124
126
129
130
136
136
137
137
142
146
148
202
203
204
204
205
206
215
218
220
235
239
239
240
1
1
2
3
4
4
5
5
5
5
5
5
5
5
7
7
8
8
8
8
8
9
9
10
10
10
10
10
11
11
12
12
12
12
12
12
12
12
13
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
15
15
16
16
16
16
16
16
17
17
17
17
17
17
18
18
18
18
19
19
19
19
19
19
19
19
19
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
28
28
28
28
28
29
29
29
29
29
29
30
30
31
31
31
31
31
31
31
31
31
31
32
32
32
32
34
35
35
36
42
45
46
46
46
46
46
46
47
47
48
48
48
48
48
49
49
49
50
50
51
51
52
53
53
54
55
55
57
61
63
64
64
65
66
66
66
67
67
67
68
68
68
68
68
69
69
69
70
70
70
71
71
71
71
71
72
72
72
73
73
73
73
73
73
74
74
74
74
75
76
76
77
77
77
77
77
77
77
78
78
78
78
79
79
80
80
80
81
81
82
84
84
85
86
87
91
91
91
93
93
95
95
98
99
100
100
101
101
102
102
104
105
105
114
118
118
124
125
125
127
130
136
136
138
138
138
143
147
148
149
203
204
205
205
206
207
216
219
221
236
239
240
241
1
1
1
2
3
4
5
7
9
9
9
9
9
9
9
9
10
10
10
10
10
10
11
11
11
11
11
12
12
12
12
13
13
13
13
13
13
14
14
14
14
15
15
15
15
15
15
16
16
16
16
16
16
17
17
17
17
17
17
18
18
18
19
19
19
19
19
19
19
20
20
20
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
27
27
27
28
28
29
29
29
29
29
29
29
30
30
30
30
30
31
31
31
31
31
31
31
32
32
32
32
32
33
35
35
36
36
37
37
40
43
44
46
47
47
47
47
47
48
48
49
49
49
49
49
50
50
50
50
51
52
52
53
54
54
55
56
56
58
59
60
62
64
65
65
65
65
66
67
67
67
68
68
68
68
69
69
69
69
69
70
70
70
70
70
70
71
71
72
72
72
73
73
73
74
74
74
74
74
75
75
75
75
76
77
78
78
78
78
78
78
78
79
79
79
79
80
80
80
81
81
82
85
85
86
87
88
92
92
96
96
98
99
99
100
101
101
102
102
103
103
104
106
106
115
119
119
125
126
126
128
130
131
137
139
139
139
144
148
149
150
204
205
206
206
207
208
217
220
222
237
241
242
1
1
1
1
1
1
3
4
4
5
5
6
7
9
9
10
10
10
11
11
11
11
12
12
12
12
12
12
12
13
14
14
14
14
14
14
14
15
15
15
15
16
16
16
16
16
16
16
17
17
17
17
17
17
18
18
18
18
18
18
19
19
19
19
19
19
20
20
20
20
21
21
21
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
28
28
28
28
29
29
29
29
30
30
30
30
30
30
31
31
31
31
32
33
33
33
34
36
36
37
37
38
38
41
44
44
45
46
47
48
48
48
48
48
48
49
49
50
50
50
50
50
50
51
51
51
51
52
53
53
54
55
55
56
57
58
59
60
61
61
61
63
64
65
66
66
66
66
66
66
66
67
68
68
69
69
70
70
70
70
70
70
70
70
70
70
70
70
71
71
71
71
72
72
73
73
73
74
74
75
75
75
75
75
75
76
76
76
76
76
76
77
77
77
78
78
79
79
79
80
80
80
80
81
81
81
84
86
86
86
87
88
89
91
93
93
97
97
100
100
101
102
102
103
103
104
104
107
107
116
120
126
126
127
129
130
132
138
140
145
148
150
151
205
206
207
207
208
209
218
221
223
238
242
243
1
1
1
2
4
5
5
5
6
7
7
7
9
9
9
10
11
12
12
12
12
12
12
13
13
13
13
14
14
14
15
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
17
17
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
21
21
21
21
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
25
25
25
25
25
25
26
26
26
26
26
26
26
27
27
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
30
30
30
30
31
31
31
31
31
32
32
33
34
34
34
35
36
36
37
37
38
38
39
39
42
45
46
47
48
48
49
49
49
49
49
50
50
51
51
51
51
51
51
52
52
52
52
52
53
54
55
56
56
57
58
59
59
60
61
62
62
62
62
64
65
65
65
66
66
66
67
67
67
67
67
67
67
68
68
69
69
69
70
70
70
71
71
71
71
71
71
71
71
72
72
72
73
73
74
74
74
75
75
76
76
76
76
76
77
77
77
77
77
77
77
77
78
78
79
80
81
81
81
81
81
81
81
82
82
84
85
88
89
89
90
91
91
92
94
98
98
101
101
102
103
103
104
105
105
108
108
117
119
119
121
126
128
130
130
131
133
140
146
151
152
206
207
208
208
209
210
219
222
224
239
243
244
1
1
1
1
1
2
3
4
4
5
5
5
5
5
5
7
7
8
9
10
10
10
11
11
12
12
13
13
13
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
16
16
17
17
17
17
18
18
18
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
27
27
28
28
28
28
28
28
28
28
28
29
29
29
29
29
30
31
31
31
31
32
32
34
35
35
35
36
37
37
39
40
40
46
47
48
49
49
50
50
50
50
50
52
52
52
52
52
52
53
53
53
53
53
54
55
56
57
58
59
60
60
61
62
62
63
63
63
63
63
63
63
63
63
64
64
65
65
66
66
66
67
68
68
68
68
68
69
69
69
70
70
70
70
70
70
70
71
71
71
72
72
72
72
74
74
75
75
75
76
76
77
77
77
77
77
77
77
78
78
78
78
79
79
79
80
81
81
81
81
82
82
82
82
82
83
83
85
85
85
86
86
89
90
90
90
90
91
91
92
93
95
97
99
99
102
102
103
104
105
106
106
109
109
118
120
122
129
130
131
131
132
136
136
136
147
152
153
207
208
209
209
209
211
220
223
224
225
240
244
245
1
2
3
5
5
5
6
6
7
7
7
9
9
9
10
11
11
11
11
11
12
12
12
12
12
13
13
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
16
17
17
17
17
18
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
27
28
28
28
28
28
28
28
28
29
29
29
30
30
30
31
31
32
32
32
33
33
35
36
36
36
37
38
38
40
41
41
48
49
49
50
50
51
51
51
51
51
53
53
53
53
53
53
54
54
54
54
54
55
56
58
59
60
60
61
61
62
62
62
64
64
64
64
64
64
64
65
65
66
67
67
67
68
68
69
69
69
70
70
70
70
71
71
71
71
71
71
72
72
72
73
73
73
73
75
75
75
76
76
76
76
77
77
77
77
77
77
77
78
78
78
79
80
81
81
82
82
82
82
82
83
83
83
83
83
84
84
84
86
87
87
90
91
91
92
93
94
96
98
100
100
103
103
104
105
106
107
107
110
110
119
121
123
126
127
130
131
132
132
136
137
137
141
141
148
153
154
208
209
209
210
210
210
212
221
223
225
226
241
245
246
1
1
1
2
2
3
4
5
5
5
5
5
5
7
7
7
7
9
9
9
10
11
11
11
11
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
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
22
22
22
22
22
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
27
27
28
28
28
28
28
28
29
29
29
29
29
29
31
31
31
31
33
34
34
34
36
37
37
37
38
39
41
42
42
49
50
50
51
51
52
52
52
54
54
54
54
54
54
54
54
55
55
55
55
55
56
57
59
60
60
61
61
62
62
62
63
63
63
63
64
64
65
65
65
65
65
65
65
65
66
66
67
67
68
68
68
69
71
71
71
72
72
72
72
72
73
73
74
74
74
74
75
76
76
77
77
77
78
78
78
78
78
79
79
80
81
81
81
82
82
83
83
83
83
83
84
85
85
85
85
86
86
86
86
87
88
88
90
91
91
91
91
91
92
93
94
97
98
101
101
104
104
105
106
107
108
108
111
111
120
122
124
126
128
131
132
133
138
138
142
142
142
142
149
154
155
209
210
211
211
211
213
222
226
227
242
246
247
1
1
1
2
2
3
3
5
5
5
6
6
7
7
7
7
9
11
12
12
12
13
13
13
14
14
14
14
14
15
15
15
15
16
16
16
16
16
17
17
17
17
17
17
17
18
18
18
18
18
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
28
28
28
28
28
28
28
29
29
29
29
29
31
31
32
32
33
34
34
35
35
35
37
38
38
38
39
40
42
43
43
50
51
51
52
53
53
53
55
55
55
55
55
55
55
55
56
56
56
56
56
57
58
60
61
61
62
62
62
63
64
64
64
64
64
64
64
65
66
66
66
66
66
66
66
66
66
66
67
67
67
68
69
72
72
72
72
73
73
73
73
73
74
75
75
76
76
77
78
78
78
79
79
80
80
81
82
82
83
83
83
84
85
85
85
85
85
86
86
86
86
87
87
87
87
92
92
92
93
94
94
94
95
98
102
102
105
105
106
107
108
109
109
112
112
121
123
125
127
128
128
129
130
132
133
134
139
142
142
142
142
143
143
150
155
156
210
210
211
212
212
212
214
223
227
228
243
247
248
3
3
4
4
5
5
5
5
5
7
7
7
9
10
11
11
11
11
12
12
12
12
13
13
14
14
14
15
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
19
19
19
19
19
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
31
32
33
33
34
34
34
35
36
36
38
39
39
40
41
43
44
44
51
52
53
54
54
54
55
56
56
56
56
56
56
56
56
57
57
57
57
57
57
57
58
59
60
61
62
62
62
63
64
64
64
65
65
65
65
65
65
65
66
67
67
67
67
67
68
68
68
68
69
70
70
71
73
73
73
73
73
73
73
74
74
74
75
76
76
76
77
78
78
79
79
80
80
81
81
81
82
83
83
83
84
85
86
87
87
87
88
88
88
90
91
91
93
93
93
95
95
95
96
99
103
103
103
103
106
106
107
108
109
110
110
113
113
122
124
126
126
128
129
129
130
131
133
135
136
139
143
143
144
144
151
156
157
211
211
212
213
213
213
215
224
228
229
244
248
249
1
1
4
4
5
5
5
5
5
6
6
7
7
7
7
7
7
9
11
11
12
12
12
12
12
13
13
13
13
13
14
14
14
14
14
14
14
14
15
15
15
15
16
17
17
17
17
17
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
29
29
29
29
30
31
34
34
34
35
36
37
37
39
40
40
41
42
42
44
44
45
45
52
53
54
55
55
55
56
56
56
57
57
57
57
57
57
57
57
58
58
58
58
58
58
59
59
59
59
60
60
60
61
61
62
62
63
63
63
63
64
65
65
65
66
66
66
66
66
67
67
68
68
68
68
68
68
69
69
69
70
70
71
71
71
73
73
73
73
73
73
74
74
75
75
75
75
76
76
77
77
77
77
77
78
80
80
80
80
81
81
81
81
82
82
82
83
84
85
85
86
86
86
87
88
88
88
89
89
91
91
92
94
96
96
96
100
104
104
104
104
107
108
109
110
111
111
114
114
123
125
127
129
129
130
131
132
134
136
136
137
144
144
152
157
158
212
213
214
214
214
216
225
229
230
245
249
250
1
1
1
4
5
5
5
5
5
5
5
5
6
6
7
8
8
11
11
11
12
12
13
13
13
14
14
14
14
14
14
15
15
15
16
17
17
17
17
17
17
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
31
32
33
33
34
35
35
36
37
38
38
40
40
41
41
42
43
43
45
45
46
46
53
53
54
55
55
55
56
56
57
57
57
58
58
58
58
58
58
58
58
59
59
59
59
59
59
59
60
60
60
60
61
61
61
61
62
62
63
63
64
64
65
66
66
66
66
67
67
67
67
67
67
68
68
69
69
69
69
69
70
70
70
70
70
70
70
70
70
71
72
74
74
74
75
75
75
75
76
77
78
78
78
78
78
79
81
81
81
81
81
81
81
82
82
83
83
83
84
85
86
86
87
87
87
87
88
89
89
91
92
93
94
95
97
101
104
104
105
105
105
108
109
110
111
112
112
115
115
124
124
126
128
129
129
130
131
132
133
135
137
138
138
153
158
159
213
214
215
215
215
217
226
230
231
246
250
251
1
1
4
5
5
5
5
5
5
5
6
6
6
6
6
7
7
7
7
7
7
8
9
11
11
13
14
14
14
15
15
15
15
15
15
15
16
16
17
17
17
18
18
18
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
31
32
32
32
34
34
36
37
38
39
39
41
41
42
42
43
44
44
46
46
47
47
54
54
55
56
56
56
57
57
58
58
58
58
58
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
61
61
61
61
62
62
62
62
62
62
62
62
62
62
62
63
63
64
64
64
65
65
66
67
67
67
67
67
68
68
68
68
68
68
68
69
69
69
69
70
71
71
71
71
71
72
73
73
73
73
75
75
76
77
78
79
79
79
80
82
82
82
82
82
82
82
82
83
84
84
84
85
86
86
86
87
87
88
88
89
90
90
91
91
92
93
96
98
102
104
104
104
104
105
106
106
106
109
110
111
112
113
113
116
116
125
127
128
129
130
130
131
133
133
136
136
138
138
139
139
142
154
159
160
214
215
216
216
216
218
227
231
232
247
251
252
4
4
4
5
5
5
5
5
5
5
5
7
7
7
7
7
8
8
8
8
8
8
9
10
11
12
12
13
13
13
14
14
14
14
15
16
17
17
17
17
17
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
27
27
27
27
27
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
30
30
31
32
33
35
35
37
38
39
40
42
42
43
43
44
47
47
48
48
55
55
55
56
56
57
57
57
57
57
58
58
58
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
61
62
62
62
62
63
63
63
63
63
63
63
63
63
63
64
65
65
65
65
65
66
66
67
67
67
67
67
68
68
69
69
69
69
69
70
70
70
71
72
72
72
72
73
73
74
77
78
79
80
80
80
80
81
83
83
83
83
84
85
85
86
86
86
86
87
87
87
87
88
88
89
89
89
90
90
91
91
91
92
93
94
94
94
97
99
103
105
105
106
106
107
107
108
110
111
112
113
114
117
117
126
128
129
129
129
130
131
131
134
139
139
139
139
140
142
142
143
155
160
161
215
216
217
217
217
219
228
232
233
252
253
1
1
1
5
5
5
6
7
7
8
8
8
8
8
9
9
9
9
9
10
11
11
11
11
13
14
14
14
14
14
15
15
15
15
15
15
15
16
17
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
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
31
31
34
36
37
38
39
40
41
41
42
42
43
43
43
44
44
45
47
47
48
48
49
49
56
56
57
57
57
57
58
58
58
58
58
59
59
59
59
59
60
60
60
60
60
60
60
61
61
61
61
61
61
61
61
61
61
61
62
62
62
62
62
62
62
62
62
62
63
64
64
64
64
64
64
64
64
65
65
66
66
67
67
67
67
68
68
68
68
69
70
70
70
70
70
71
71
71
72
73
73
73
73
73
73
73
73
73
75
76
77
78
79
80
80
80
81
81
82
83
84
84
84
84
85
86
86
86
87
88
88
88
89
89
89
90
91
91
92
92
93
94
95
95
95
98
98
100
100
104
106
106
108
108
109
111
112
113
113
113
114
115
118
118
129
130
130
130
131
132
135
139
139
140
140
140
141
142
143
144
156
161
162
216
217
218
218
218
220
229
233
234
253
254
1
1
1
1
1
1
1
1
4
5
5
5
5
5
5
6
7
8
8
9
9
9
9
9
10
10
10
10
10
10
11
11
11
12
12
13
13
13
14
15
15
15
16
16
16
18
18
18
18
18
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
26
26
26
26
26
26
26
26
26
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
30
32
32
35
37
38
39
40
41
42
42
43
43
44
44
44
45
46
48
48
49
49
50
57
57
57
58
58
58
58
59
59
59
60
60
60
60
60
61
61
61
61
61
61
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
64
64
64
65
65
65
65
65
65
65
65
66
66
66
67
67
67
68
68
69
69
69
69
69
70
70
70
71
71
71
71
71
72
72
73
73
73
73
73
74
74
74
74
74
74
76
77
78
79
80
80
80
81
82
82
82
83
83
83
83
85
85
85
85
85
86
87
87
88
89
89
89
90
91
91
92
92
93
93
94
94
94
96
96
96
96
101
101
104
105
109
109
110
112
113
114
114
115
116
119
119
129
130
131
131
131
131
132
133
133
136
139
139
139
140
141
141
141
144
145
157
162
163
217
218
219
219
219
221
230
234
235
251
254
255
1
1
1
4
4
5
5
5
5
6
6
6
7
7
7
8
8
8
8
9
9
9
9
9
10
10
10
10
10
10
11
11
11
11
11
12
13
13
13
13
13
14
15
15
16
16
16
16
17
17
17
17
17
18
18
19
19
19
19
19
19
19
19
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
28
28
28
28
28
29
29
29
29
29
29
29
29
29
30
30
33
33
33
37
38
39
40
41
42
43
43
44
44
45
45
45
46
47
49
49
50
50
51
55
58
58
58
58
58
59
59
59
60
60
60
60
60
60
61
61
61
61
61
61
61
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
64
64
64
65
65
66
67
67
67
68
68
69
69
69
69
70
70
70
70
71
71
71
72
72
72
72
72
73
73
73
73
73
74
74
74
74
75
75
75
75
76
80
81
81
81
82
83
84
84
84
84
86
86
86
86
86
86
87
89
89
89
90
91
91
92
93
94
94
94
94
94
95
95
97
102
102
104
105
106
110
110
111
113
114
115
115
116
117
120
120
129
130
131
131
131
132
133
133
133
134
134
137
139
139
140
140
140
141
142
142
145
158
163
164
218
218
219
220
220
222
231
235
236
247
252
255
256
1
1
5
5
5
5
5
5
7
7
7
7
8
9
9
9
9
10
11
11
11
11
12
12
12
13
13
13
13
13
14
14
14
14
15
15
15
15
17
17
17
17
18
18
18
19
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
21
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
27
27
27
28
28
28
29
29
30
30
32
32
34
34
34
38
39
39
41
41
42
43
45
46
46
46
47
47
48
50
51
51
51
52
56
57
57
58
58
59
59
59
59
59
60
60
60
60
60
60
61
61
61
61
61
62
62
62
62
62
62
62
63
63
63
63
63
64
64
64
64
64
64
64
64
64
65
65
65
65
65
65
66
67
68
68
68
69
69
69
70
70
70
70
71
71
71
71
72
72
72
73
73
73
73
73
73
74
74
74
75
75
76
76
77
78
80
81
82
82
82
82
83
84
84
84
84
84
84
85
85
86
87
87
87
87
88
90
90
90
91
91
92
94
94
95
95
95
95
95
95
96
96
96
98
103
103
104
105
106
107
111
111
112
114
115
116
116
117
118
121
121
131
132
133
134
134
134
135
135
138
139
140
141
141
141
143
143
146
159
164
165
219
219
220
221
221
221
223
232
236
237
253
256
257
1
1
1
1
4
5
5
6
7
7
8
8
8
8
8
8
8
8
8
9
9
10
10
10
10
11
11
12
12
12
12
12
12
13
14
15
15
15
15
15
15
16
17
17
18
18
19
19
19
19
19
20
20
20
20
21
21
21
21
21
21
21
22
22
22
23
23
23
23
23
23
23
23
23
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
27
27
27
27
27
27
28
28
29
29
31
33
33
35
35
39
40
40
42
42
43
44
46
47
47
47
48
48
49
50
51
52
52
52
52
53
56
57
58
58
58
59
59
60
60
60
60
60
60
61
61
61
61
61
61
62
62
62
62
62
62
62
62
63
63
63
63
63
64
64
64
64
65
65
65
65
65
65
65
66
66
66
66
66
66
67
68
69
69
69
69
69
69
69
69
70
70
70
71
71
71
71
71
72
72
72
73
73
73
73
73
73
73
73
74
74
75
76
77
80
80
81
82
83
84
84
85
85
85
85
86
86
86
87
88
88
88
88
88
89
91
91
92
92
93
95
95
96
96
96
96
97
97
99
104
104
104
106
107
108
112
112
113
115
115
116
117
117
118
118
119
122
122
132
133
134
135
135
135
139
139
141
141
142
144
144
145
147
164
165
166
220
221
222
222
222
224
233
237
238
254
257
258
1
1
1
5
5
5
5
5
6
7
7
7
7
8
8
8
8
8
9
9
9
10
10
10
11
11
11
11
11
11
11
11
12
13
13
14
15
15
15
16
16
16
16
16
17
17
17
17
17
18
18
18
18
18
19
19
19
19
19
20
20
20
21
21
21
21
21
21
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
25
26
26
26
26
26
26
26
26
27
27
27
28
28
28
28
28
28
28
32
34
34
36
40
41
41
42
43
43
44
46
47
48
48
48
49
49
51
52
53
53
53
53
54
57
57
57
58
58
59
59
59
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
62
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
64
64
64
64
64
65
65
65
65
65
65
66
66
66
66
66
67
67
67
67
67
67
68
68
68
69
69
69
69
70
70
70
70
70
71
71
72
72
72
72
73
73
73
73
73
73
74
74
74
75
76
76
77
78
80
81
81
82
82
83
84
84
84
85
85
86
86
86
86
87
87
87
87
89
89
89
90
92
93
93
94
95
96
96
96
96
96
97
97
98
98
100
105
105
107
108
109
113
114
117
118
118
119
119
120
123
123
129
131
131
134
135
136
140
140
141
142
145
145
145
145
146
148
159
165
166
167
221
222
223
223
223
225
234
238
239
255
258
259
1
1
1
4
4
4
4
5
5
5
5
5
5
7
7
7
7
7
8
8
8
8
8
9
10
10
10
11
11
11
11
11
12
12
12
13
13
14
14
14
14
14
15
16
16
16
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
26
27
27
27
27
28
28
29
29
29
29
29
29
29
29
29
31
33
35
37
41
41
43
43
44
44
45
47
48
49
49
49
50
52
53
53
53
54
54
54
54
55
55
57
57
58
58
58
58
58
60
60
60
61
61
61
61
61
61
61
61
61
62
62
63
63
63
63
63
63
63
64
64
64
64
64
64
65
65
65
65
66
66
66
67
67
67
67
67
67
68
68
68
68
68
68
68
69
69
69
70
70
70
70
70
71
71
71
71
72
72
72
73
73
73
73
74
74
74
74
74
74
74
74
75
75
76
77
77
78
79
82
83
83
84
84
85
85
86
86
86
87
88
88
88
90
90
90
90
91
91
91
93
94
94
95
95
95
95
96
97
97
97
97
98
98
98
101
106
106
108
109
110
112
112
114
115
118
119
119
120
120
121
124
124
128
129
130
132
132
132
133
133
133
135
136
137
140
141
146
146
146
147
166
167
168
222
223
224
224
224
226
235
239
240
256
259
260
1
1
5
5
5
5
5
5
7
7
9
9
10
10
10
11
11
11
11
11
11
12
12
13
13
14
14
14
15
15
15
15
16
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
19
19
19
19
19
19
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
28
28
28
28
29
29
29
29
29
30
30
30
30
30
31
34
36
38
42
42
44
44
45
45
46
48
48
49
49
49
50
50
50
50
50
51
52
52
54
54
54
54
54
55
55
55
55
55
55
56
56
58
58
58
58
59
59
59
59
59
59
60
61
61
62
62
62
62
62
62
62
62
63
63
63
63
64
64
64
64
65
65
65
65
65
66
66
67
67
68
68
68
68
68
69
69
69
69
69
69
69
69
69
70
71
71
71
71
71
72
72
72
73
73
74
74
74
74
74
74
74
75
75
75
75
76
76
77
78
78
80
80
81
82
82
82
83
83
83
84
84
84
85
85
86
86
87
87
87
89
89
89
90
91
91
91
92
92
92
94
94
94
95
95
96
97
98
98
98
98
99
99
99
102
107
107
109
111
113
115
116
119
120
120
121
121
122
125
125
129
129
131
134
134
134
135
137
137
138
142
142
147
147
147
167
168
169
223
224
225
225
225
227
236
240
241
257
260
261
1
1
1
1
4
5
5
5
5
6
6
7
7
7
7
8
8
9
9
9
10
11
11
11
11
12
12
12
12
12
12
12
13
14
14
15
15
15
15
16
16
16
16
16
17
17
17
17
17
17
17
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
27
27
27
27
27
28
28
28
28
28
28
28
28
29
29
29
29
29
30
30
31
31
31
31
31
37
39
41
43
43
43
43
45
46
46
47
49
49
50
50
50
51
51
51
51
51
52
53
53
55
55
55
55
55
56
56
56
56
56
56
56
57
57
58
58
58
59
59
59
59
60
60
60
60
60
63
63
63
63
63
63
63
63
63
64
64
64
64
64
65
65
65
65
65
66
66
67
67
67
67
68
68
69
69
69
69
69
69
69
69
70
70
70
70
70
70
71
72
72
73
74
74
75
75
75
75
75
75
76
76
76
76
76
77
77
78
81
81
81
81
82
83
83
83
84
84
84
84
84
85
86
86
87
88
90
90
90
92
92
92
93
94
95
95
95
96
96
96
97
98
99
99
99
100
100
100
103
108
108
109
110
112
114
116
117
121
121
122
122
123
126
126
130
130
132
132
134
135
135
138
138
139
142
143
145
148
148
168
169
170
224
225
226
226
226
228
237
241
242
258
261
262
1
1
1
5
5
5
5
5
5
5
7
7
7
8
8
8
8
8
9
9
9
10
10
11
11
11
11
11
11
12
12
12
13
13
13
13
14
15
16
16
16
16
17
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
27
27
27
27
27
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
30
31
31
32
32
32
32
38
38
40
40
42
44
44
44
46
47
47
48
50
50
51
51
52
52
52
52
53
53
54
54
56
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
58
58
58
58
59
59
59
60
60
60
60
60
61
61
61
61
61
63
63
64
65
65
65
65
66
66
66
66
66
67
67
67
67
68
68
69
69
69
69
69
69
69
70
70
70
70
70
70
70
71
71
71
71
71
71
72
72
72
73
74
74
74
75
75
75
76
76
76
76
77
78
78
78
79
82
83
83
84
84
84
84
84
84
84
84
85
85
85
85
86
87
87
87
88
89
90
90
91
91
91
93
93
93
94
94
95
96
96
96
96
97
97
97
97
98
100
100
101
101
104
109
109
109
111
113
115
117
118
122
122
123
123
124
127
127
129
132
133
133
135
135
139
139
140
141
144
145
146
149
149
169
170
171
225
226
227
227
227
229
238
242
243
259
261
262
263
1
1
4
5
5
5
5
5
5
5
5
7
7
7
7
7
7
7
7
9
10
10
11
12
12
12
12
13
13
14
14
14
14
14
14
14
15
15
15
15
15
16
17
17
17
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
27
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
31
32
32
33
33
33
33
36
39
39
41
41
43
45
45
45
47
48
48
49
49
51
52
53
53
53
53
54
54
55
55
56
56
56
57
57
57
57
57
57
58
58
58
58
58
58
58
58
58
58
58
58
58
59
59
59
59
59
59
60
60
60
60
60
60
61
61
61
61
61
61
63
63
64
64
65
65
66
66
66
67
67
68
68
69
69
69
70
70
70
70
70
71
71
71
71
71
72
72
72
72
72
72
72
72
72
72
72
73
73
74
75
75
75
76
76
76
76
76
77
77
78
79
79
79
80
82
83
84
85
85
85
85
85
86
86
87
87
88
88
88
88
89
90
91
91
92
92
92
94
94
94
95
96
96
97
97
97
98
98
99
100
101
102
102
105
109
110
110
110
112
114
116
118
119
123
123
124
124
125
128
128
129
132
133
134
134
140
140
141
141
145
146
147
150
150
170
171
172
226
227
228
228
228
230
239
243
244
260
262
263
264
1
1
5
5
5
5
5
5
5
5
5
7
7
7
7
8
8
8
8
8
8
10
10
10
10
11
11
11
11
12
12
13
14
14
14
15
15
15
15
15
16
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
28
28
28
28
28
28
28
29
29
29
29
30
30
31
31
31
33
33
34
34
34
34
37
40
40
42
42
46
46
46
48
49
49
50
50
51
52
53
53
54
54
54
54
54
55
55
56
56
57
57
57
57
57
58
58
58
58
58
58
58
58
59
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
62
62
62
62
62
62
62
62
63
63
63
64
64
65
65
65
65
66
67
67
67
68
68
69
69
69
69
70
70
70
71
71
71
71
71
72
72
72
72
72
72
72
73
73
73
73
73
73
74
74
74
75
76
77
77
77
77
77
78
78
79
79
80
80
81
83
83
84
84
84
85
86
86
87
87
88
89
89
89
89
89
90
91
93
93
93
95
95
95
95
96
97
98
98
98
99
99
99
100
102
103
103
106
109
110
111
111
111
115
117
119
119
120
124
124
125
125
126
129
129
133
134
141
141
142
146
147
148
151
151
171
172
173
227
228
229
229
229
231
240
244
245
261
264
265
1
1
5
5
5
5
5
5
5
5
7
7
7
9
9
9
9
10
10
10
11
11
12
12
12
12
13
13
13
14
14
14
15
15
15
16
16
16
16
17
17
17
17
17
17
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
21
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
27
28
28
28
28
28
28
28
29
29
30
31
31
32
32
34
34
35
35
35
35
38
43
43
47
47
47
49
50
50
51
51
52
53
53
54
54
54
55
55
55
55
55
55
56
56
56
56
57
57
58
58
58
58
58
58
58
58
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
61
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
63
64
65
65
67
68
68
69
69
69
70
70
70
71
71
72
72
72
73
73
73
73
73
74
74
74
74
74
74
74
74
75
75
75
76
76
78
78
78
78
78
78
79
79
80
80
81
82
85
85
85
85
87
87
88
88
89
90
91
92
94
94
94
95
96
96
96
96
97
98
99
99
99
100
100
101
103
104
104
107
110
111
112
112
116
118
120
120
121
122
125
125
126
126
127
130
130
134
142
142
143
147
148
152
152
172
173
174
228
229
230
230
230
232
241
245
246
262
265
266
1
1
1
1
1
1
5
5
5
5
5
5
5
5
6
7
7
7
7
7
8
8
9
10
10
10
10
10
10
11
11
11
11
12
12
12
12
12
13
13
13
14
14
15
15
16
16
16
16
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
21
21
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
25
25
26
26
26
26
26
27
27
27
29
29
29
29
32
32
33
33
35
36
36
36
36
39
44
44
45
47
48
48
50
51
51
51
51
53
54
54
55
55
55
55
56
56
56
56
56
56
56
57
57
58
58
58
59
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
61
62
62
62
62
62
62
62
62
62
63
63
63
63
63
64
64
64
64
64
64
64
65
66
66
66
68
68
69
69
70
70
70
71
71
71
71
72
72
72
73
73
73
73
73
73
74
74
74
75
75
75
75
75
75
76
76
76
76
77
77
79
79
80
81
82
83
84
85
86
86
86
86
87
87
87
88
88
89
89
91
91
92
93
95
95
95
97
97
97
97
98
100
100
101
102
104
105
105
108
111
113
113
117
117
119
121
122
123
126
126
127
127
128
129
131
131
142
143
143
144
145
148
148
153
153
173
174
175
229
230
231
231
231
233
242
246
247
263
266
267
1
1
1
1
1
1
1
1
1
4
4
4
5
5
5
5
5
5
5
5
5
5
7
7
7
8
8
10
10
10
10
11
11
12
12
12
12
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
17
17
17
17
17
18
18
18
18
19
19
19
19
19
19
20
20
20
20
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
25
25
26
26
26
26
26
26
26
26
28
28
33
33
34
35
35
36
37
37
37
37
40
45
45
46
48
49
49
51
52
52
52
52
53
53
54
54
55
55
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
58
58
59
59
59
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
62
62
62
62
62
63
63
63
63
63
64
64
64
65
65
65
65
65
65
65
65
65
66
67
67
67
68
69
69
69
69
70
72
72
72
73
73
73
74
74
74
74
74
74
75
75
75
76
76
76
76
76
76
76
77
77
77
77
77
78
78
78
80
81
82
84
84
84
85
85
87
88
88
88
88
89
89
91
92
93
94
96
96
96
98
98
98
98
99
99
101
101
102
103
105
106
109
109
112
114
114
118
120
121
122
123
124
127
127
128
128
129
130
132
132
132
140
141
142
143
144
144
145
146
149
154
154
174
174
175
176
230
231
232
232
232
234
243
247
248
264
267
268
1
1
5
5
5
5
5
5
5
5
5
5
5
5
6
7
7
7
7
8
8
9
9
10
10
10
10
10
10
10
10
11
11
11
11
12
12
13
13
14
14
14
14
14
14
14
15
15
15
16
16
16
16
16
16
16
16
17
17
17
17
17
18
18
18
18
18
19
19
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
26
26
26
26
26
26
26
26
26
26
26
26
27
27
28
28
28
28
29
31
33
34
34
35
35
36
36
37
37
38
38
38
41
46
46
47
49
49
50
50
51
51
51
52
53
53
53
53
54
54
54
54
55
56
56
56
56
56
56
56
56
56
57
57
57
57
57
57
58
58
58
58
58
58
59
59
60
60
60
61
61
61
61
61
61
62
62
62
62
62
63
63
63
63
64
64
65
65
65
65
65
65
66
66
66
66
66
66
67
67
67
67
67
67
67
67
68
68
69
69
70
70
70
71
72
73
73
73
74
74
75
75
75
75
76
76
76
77
77
77
77
77
77
77
78
78
79
79
79
81
82
83
83
84
85
85
86
87
88
89
89
93
94
95
95
95
96
97
97
97
99
99
99
100
100
100
101
102
102
103
104
105
105
106
107
110
110
115
115
121
122
123
124
125
128
128
129
129
130
133
133
133
141
143
145
145
145
146
147
150
155
155
175
175
176
177
231
231
232
233
233
233
235
244
248
249
265
268
269
1
4
4
5
5
5
5
5
5
5
5
6
6
7
7
7
7
8
8
9
9
9
9
10
10
10
10
11
11
11
11
12
12
13
13
13
13
14
14
14
14
14
15
15
15
15
15
15
15
16
16
16
16
16
16
17
17
17
17
17
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
25
25
25
25
26
26
26
26
27
27
27
27
27
27
28
28
28
29
29
29
29
29
32
34
35
35
36
36
37
37
38
38
39
39
39
42
47
47
50
50
51
51
52
52
52
53
53
53
53
54
54
54
54
54
55
55
55
55
56
56
56
56
57
57
57
57
57
57
57
57
58
58
58
58
58
58
59
59
59
59
59
59
59
59
59
60
60
60
61
61
61
61
63
63
64
64
64
64
64
65
65
65
65
65
66
66
66
66
66
66
66
66
67
67
67
67
67
67
67
68
68
68
68
68
68
69
70
71
71
71
72
72
73
73
73
74
74
75
75
75
75
75
76
76
77
77
77
77
77
77
78
78
78
78
78
78
78
78
78
79
79
79
80
80
80
82
83
84
84
85
85
86
86
87
89
89
94
95
95
96
97
98
98
98
98
98
100
100
102
103
103
104
105
106
107
108
111
111
116
116
122
123
124
125
126
129
129
129
129
130
130
131
131
134
134
134
134
141
146
146
146
147
148
151
156
156
176
177
178
232
233
234
234
234
236
245
249
250
266
269
270
3
4
4
5
5
5
5
5
5
5
5
5
5
5
5
6
7
7
7
7
7
8
8
8
9
9
9
9
9
9
9
10
10
10
11
11
12
12
12
12
12
12
12
12
13
13
14
14
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
27
28
28
28
28
28
29
29
29
29
33
35
36
36
37
37
38
38
38
39
39
40
40
40
43
48
48
51
51
52
53
53
53
54
54
54
54
54
54
54
54
55
55
55
55
55
55
56
56
56
56
56
56
56
56
57
57
57
58
58
58
58
58
58
58
58
59
59
59
59
59
59
59
60
60
60
60
60
60
61
61
61
62
62
63
64
64
65
65
65
65
66
66
66
66
66
67
67
67
67
67
67
67
67
67
67
67
67
67
67
68
68
68
68
69
69
69
69
69
71
72
72
73
74
75
75
75
76
76
76
76
76
77
77
77
77
77
78
78
78
78
78
78
79
79
79
79
79
79
79
79
79
79
80
80
80
81
82
83
83
84
84
85
85
86
86
87
87
87
87
87
89
90
95
96
96
97
98
99
99
101
101
103
104
104
105
106
107
108
109
112
112
117
117
123
124
125
126
127
130
130
131
131
132
132
132
135
135
135
135
143
146
147
147
148
148
149
152
157
157
177
178
179
233
234
235
235
235
237
246
250
251
267
270
271
1
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
6
6
6
7
8
8
9
9
9
9
9
9
9
10
10
10
10
11
12
12
13
13
13
13
13
14
14
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
18
18
18
18
18
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
27
27
27
27
27
27
28
28
29
29
29
29
36
37
37
39
39
39
40
40
41
41
44
46
48
49
49
51
51
52
52
52
53
53
53
54
54
54
54
54
55
55
55
55
55
55
55
55
56
56
56
56
56
56
57
57
57
57
57
57
58
58
58
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
61
61
61
61
61
61
61
61
62
62
62
63
63
65
65
65
65
65
65
66
66
66
66
66
66
67
67
67
67
67
67
67
67
68
68
68
68
68
68
69
69
70
70
70
72
72
72
73
73
73
75
76
76
76
76
76
76
77
77
77
77
77
78
78
79
79
79
79
79
79
79
80
80
80
80
80
80
80
80
81
82
83
83
84
84
84
85
85
86
87
87
88
88
88
88
89
91
96
97
97
98
99
100
100
102
102
104
105
105
106
107
108
109
109
110
112
113
118
118
124
125
126
127
128
131
132
132
132
133
133
133
134
135
136
136
136
143
146
148
148
148
149
149
150
153
158
158
178
179
180
234
235
236
236
236
238
247
251
252
268
271
272
1
1
2
4
5
5
5
5
5
5
5
6
6
8
8
9
9
9
10
10
10
10
11
11
12
12
13
13
13
14
14
14
14
14
15
15
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
28
28
28
28
28
28
28
29
29
30
35
37
38
39
40
40
40
41
41
42
42
45
47
49
50
50
52
52
52
53
53
53
53
53
53
53
54
54
54
54
55
55
55
56
56
56
56
56
56
56
56
56
56
56
56
56
57
57
57
57
57
57
57
57
58
58
58
58
59
59
60
61
61
61
61
61
61
61
62
62
62
62
62
63
63
63
63
63
63
64
64
65
65
65
66
66
66
67
67
67
67
67
67
67
68
68
68
68
69
69
69
70
71
73
73
73
74
74
76
76
76
77
77
77
77
77
78
78
78
78
78
79
79
79
80
80
80
80
80
81
81
81
81
81
81
81
82
83
84
84
86
87
87
87
88
88
89
89
89
89
89
90
92
97
98
99
99
100
100
101
103
103
105
106
106
107
108
109
110
110
111
114
119
119
125
126
127
128
129
132
133
133
133
134
134
134
134
134
136
136
137
146
148
149
149
149
150
150
154
159
159
179
180
181
235
236
237
237
237
239
248
252
253
269
272
273
1
1
1
2
3
4
5
5
5
5
5
6
6
6
6
6
7
7
8
9
10
10
11
11
11
11
11
11
11
12
13
13
13
13
13
13
13
14
14
14
14
14
15
15
15
15
15
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
27
27
27
27
27
27
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
31
36
38
38
39
40
41
41
42
42
42
43
43
46
48
49
49
50
50
50
51
51
51
53
53
53
54
54
54
54
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
57
57
57
57
57
58
58
58
59
59
59
59
59
59
60
60
60
60
61
61
61
61
61
61
62
62
63
63
63
63
63
64
64
64
64
64
64
65
65
66
66
66
67
67
67
67
67
67
67
68
68
68
68
68
69
69
69
73
73
74
74
74
75
76
76
77
77
77
77
77
78
78
78
78
78
79
79
79
79
79
80
80
81
81
81
82
82
82
82
82
83
83
84
84
85
86
87
87
88
88
88
88
89
89
90
91
91
93
98
99
99
100
102
104
104
106
107
107
108
108
109
109
110
111
111
111
112
115
120
120
126
127
128
129
130
133
133
133
134
134
134
134
135
135
135
135
138
146
149
150
150
150
151
155
160
160
180
181
182
236
237
238
238
238
240
249
253
254
270
273
274
1
1
3
4
4
4
5
5
5
5
5
5
5
5
5
6
7
7
7
8
8
9
9
9
9
9
9
9
11
11
11
11
11
12
12
12
12
12
12
12
12
14
14
14
14
14
15
15
15
15
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
28
28
28
28
28
28
28
28
30
30
32
37
39
39
40
41
41
42
42
43
43
43
43
44
44
45
46
47
48
48
49
50
50
51
51
51
51
51
52
52
52
52
53
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
55
55
55
55
55
56
56
56
56
56
56
56
57
57
57
57
57
58
58
58
58
58
58
58
58
58
58
59
59
59
59
59
59
59
59
59
60
60
61
61
61
61
61
61
62
62
63
63
64
64
64
64
64
64
65
65
65
65
65
66
66
66
66
67
67
67
67
68
68
68
68
68
69
69
69
69
69
70
70
70
72
73
74
76
77
77
77
78
78
78
79
79
79
79
79
79
80
80
80
81
81
82
82
82
82
83
83
83
83
83
84
85
85
86
86
88
88
88
89
89
89
89
89
89
89
89
91
92
92
92
92
94
97
99
100
100
100
101
103
105
107
108
108
110
110
110
111
112
112
112
112
113
116
121
121
127
128
129
130
131
134
135
135
135
135
136
136
136
136
139
146
147
148
148
150
151
151
152
156
161
161
181
182
183
237
238
239
239
239
241
250
254
255
271
274
275
1
1
3
4
4
4
5
5
5
5
5
5
5
5
5
5
6
6
6
8
8
8
8
9
9
9
9
9
9
9
9
10
10
11
11
11
12
12
12
12
12
12
13
13
14
14
14
15
15
15
15
15
15
15
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
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
28
28
28
28
28
28
28
29
31
31
31
33
33
40
40
42
42
43
43
43
43
44
44
44
44
45
45
46
47
48
49
49
49
50
51
51
52
52
52
52
52
52
53
53
53
53
53
54
54
54
54
55
55
55
55
55
56
56
56
56
56
56
56
56
56
56
56
56
56
56
57
57
57
57
57
57
57
58
58
58
58
59
59
59
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
61
62
62
62
62
62
62
62
63
64
64
64
65
65
65
65
66
66
66
66
66
66
66
66
67
67
67
67
68
68
68
68
69
69
69
69
69
70
70
70
70
70
70
71
74
76
77
77
78
79
79
79
79
80
80
80
81
81
81
81
81
82
82
83
83
83
83
84
84
84
84
84
84
84
85
86
86
87
89
90
90
90
90
90
90
90
92
92
92
92
93
93
95
98
100
101
101
101
102
104
104
104
106
108
109
109
110
110
111
112
112
112
113
113
113
113
114
117
122
122
128
129
130
131
132
133
134
135
136
136
136
136
137
137
137
140
147
148
149
149
152
152
153
157
162
162
182
183
184
238
239
240
240
240
242
251
255
256
272
275
276
1
1
1
1
4
5
5
5
5
5
5
5
5
5
5
5
6
7
8
9
9
9
9
9
9
9
10
10
10
10
10
11
11
11
11
11
11
11
12
12
12
12
12
12
12
13
13
14
14
14
15
15
16
16
17
17
17
17
17
17
17
17
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
21
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
27
27
27
27
27
27
27
28
28
28
29
29
29
29
30
32
32
32
34
34
41
43
43
44
44
44
44
45
45
45
45
46
46
46
47
48
49
49
50
50
50
51
52
52
52
52
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
55
55
55
56
56
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
58
58
58
58
58
58
59
59
59
59
59
59
60
60
60
60
60
61
61
61
61
61
61
61
61
62
62
62
62
62
63
63
63
64
64
64
65
65
65
66
66
66
66
66
67
67
67
67
67
67
67
68
68
68
69
69
69
69
69
70
70
70
70
71
71
71
71
71
72
72
72
73
75
75
75
76
76
77
77
78
78
79
80
80
80
80
81
81
81
82
82
82
83
83
84
84
84
84
85
85
85
85
85
85
85
86
86
86
87
87
87
87
88
88
89
89
89
90
90
91
91
93
93
93
94
94
96
99
99
101
102
103
105
105
107
109
110
110
113
113
113
114
114
114
114
115
118
123
123
128
130
130
131
132
133
134
135
136
137
137
138
138
138
141
143
149
149
150
153
153
154
158
163
163
183
184
185
239
240
241
241
241
243
252
256
257
273
276
277
1
1
1
1
1
4
4
5
5
5
5
5
6
6
6
6
7
7
8
8
8
8
9
9
9
10
11
11
11
11
11
11
11
11
12
13
13
13
14
14
14
15
15
15
15
15
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
18
18
18
18
19
19
19
19
19
19
19
19
19
19
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
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
26
26
26
26
26
26
26
26
26
26
26
27
27
28
28
28
28
29
29
29
30
30
31
31
33
33
33
33
35
35
42
44
45
45
45
45
46
46
46
47
47
47
48
48
48
50
50
50
51
51
51
52
52
52
52
53
53
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
58
58
58
58
58
58
59
59
59
59
59
60
61
61
61
61
61
61
61
61
62
62
62
62
62
63
63
63
64
64
64
64
65
65
65
66
67
67
67
67
68
68
68
68
68
68
68
69
69
70
70
70
70
70
71
71
72
72
72
72
72
73
73
73
74
76
76
76
77
77
78
79
79
80
81
81
83
83
83
84
84
84
85
85
85
85
86
86
86
86
86
87
87
87
87
88
88
88
88
88
88
88
89
89
90
90
90
90
91
92
92
94
94
94
97
102
103
104
106
106
108
110
111
111
114
114
114
115
115
116
119
124
124
131
131
132
133
133
134
134
135
136
137
138
138
139
139
139
141
142
143
144
150
154
154
155
159
164
164
184
185
186
240
241
242
242
242
244
253
257
258
274
277
278
1
1
1
1
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
6
6
7
7
8
8
8
8
9
9
11
12
12
12
12
12
12
12
13
13
13
14
14
14
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
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
25
25
26
26
26
26
26
27
27
27
27
29
29
29
29
30
30
31
31
32
32
34
34
36
36
43
43
45
45
46
46
46
47
47
47
47
48
48
48
49
49
49
50
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
53
53
54
54
55
55
55
55
55
55
55
56
56
56
56
56
56
56
56
57
57
57
57
57
58
58
58
58
59
59
59
59
59
59
59
59
59
60
60
60
61
61
61
61
62
62
62
62
62
62
62
63
63
63
63
63
63
63
64
64
64
65
65
65
65
66
66
66
67
67
68
68
68
68
69
69
69
69
69
69
70
71
71
71
72
72
72
73
73
73
74
74
74
74
74
75
76
76
76
76
77
77
78
78
78
79
80
80
80
81
81
81
82
82
84
84
84
85
85
85
85
86
86
86
86
87
87
87
87
87
88
88
89
89
89
89
90
90
91
91
91
92
93
95
95
98
99
101
103
104
105
107
107
109
110
110
111
112
112
115
116
116
117
120
125
125
132
132
133
133
134
135
135
136
138
139
139
140
140
140
142
143
144
150
155
155
156
160
165
165
185
186
187
241
242
243
243
243
245
254
258
259
275
278
279
1
1
2
2
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
6
6
6
6
7
8
8
8
8
8
8
9
9
9
9
9
9
10
10
11
11
11
12
12
12
13
13
13
14
14
14
14
15
15
15
15
15
16
16
16
16
16
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
24
25
25
25
25
26
26
26
26
26
26
26
26
27
27
28
28
28
28
28
30
30
30
31
31
32
32
33
33
35
35
37
37
38
40
44
44
46
46
47
47
48
48
48
48
48
49
49
49
49
49
50
50
50
50
51
51
51
51
51
52
52
52
52
52
52
52
52
53
53
53
53
53
53
54
54
54
54
55
55
55
56
56
56
56
56
56
57
57
57
57
57
57
58
59
59
59
59
60
60
60
60
60
61
61
61
61
61
62
62
62
62
63
63
63
63
64
64
64
64
64
64
64
65
66
66
66
67
67
67
68
68
69
69
69
69
70
70
70
70
70
71
71
72
72
72
73
73
73
74
74
74
75
77
77
77
78
78
79
79
79
79
80
81
81
81
82
82
83
83
85
85
85
86
86
87
87
87
87
88
88
88
88
88
88
89
89
89
89
90
90
90
91
91
92
92
92
92
93
94
96
96
97
99
100
101
104
105
106
108
108
110
111
111
111
112
112
112
112
113
113
116
117
117
118
121
126
126
133
133
134
134
135
135
136
136
137
137
139
140
140
141
141
141
142
144
150
156
157
161
166
166
186
187
188
242
243
244
244
244
246
255
259
260
276
279
280
1
1
1
1
3
3
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
7
7
8
8
9
9
9
9
10
10
10
10
11
11
11
11
11
12
12
12
12
12
13
13
13
13
13
14
14
14
14
14
15
15
16
16
16
16
16
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
23
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
25
26
26
27
27
27
27
28
28
28
29
29
29
29
31
31
31
32
32
33
33
36
36
38
38
39
41
42
44
45
45
47
47
48
48
49
49
49
49
49
49
49
50
50
50
50
50
50
50
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
55
55
55
55
55
56
57
57
57
57
57
57
57
57
58
58
59
59
59
60
60
61
61
61
61
61
61
61
61
62
62
62
62
62
62
63
63
63
64
64
64
64
64
65
65
65
65
65
65
65
66
66
66
66
67
68
68
68
69
69
69
69
69
70
70
70
70
70
70
70
71
71
71
71
71
71
72
72
73
73
74
74
74
74
75
75
76
76
76
78
78
78
79
79
79
80
80
80
80
81
82
82
82
84
84
86
86
86
87
87
87
87
88
88
88
88
88
88
89
89
89
89
89
89
90
90
90
90
91
91
91
92
92
92
93
93
94
97
97
98
99
100
101
105
106
107
109
109
111
112
113
113
113
113
114
114
114
117
118
118
119
122
127
127
134
134
135
135
136
136
136
136
137
137
141
141
142
142
142
144
145
157
158
162
167
167
187
188
189
243
244
245
245
245
247
256
260
261
277
280
281
1
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
6
6
7
7
8
8
8
8
8
8
9
9
9
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
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
28
28
29
30
30
32
32
32
33
33
34
34
37
37
38
39
39
40
40
40
42
43
45
47
48
48
48
49
49
49
49
49
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
55
55
55
55
55
55
56
56
56
56
57
57
57
58
58
58
58
59
59
59
60
60
60
60
60
61
61
61
61
61
62
62
62
62
62
62
62
62
63
63
63
63
65
66
66
66
66
66
67
67
67
68
69
69
69
69
70
70
70
70
71
71
71
71
71
71
71
72
72
72
72
73
75
75
75
75
76
77
77
78
78
80
80
81
81
82
83
85
85
87
87
87
87
87
88
88
88
88
89
89
89
89
89
89
90
90
90
90
90
90
90
90
90
91
91
92
93
94
94
95
98
98
99
100
101
102
107
108
110
110
112
113
114
114
114
115
115
115
118
119
119
120
123
128
128
135
135
136
136
137
137
137
137
138
142
142
143
143
143
144
146
158
159
163
168
168
188
189
190
244
245
246
246
246
248
257
261
262
278
281
282
1
4
4
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
7
7
7
7
8
8
8
8
8
8
9
9
10
10
10
11
11
11
11
12
12
12
12
12
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
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
25
26
26
26
26
26
26
26
27
28
29
29
30
31
32
32
33
33
33
34
34
35
35
38
38
39
40
40
41
41
43
44
45
45
46
47
48
49
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
54
54
54
54
54
54
54
54
54
54
54
54
54
55
56
56
57
57
57
57
57
57
57
58
58
59
59
59
59
60
60
61
61
62
62
62
62
63
63
63
63
63
63
63
63
63
64
64
64
64
66
67
67
68
68
68
69
70
70
71
71
71
71
71
72
72
72
72
73
73
73
74
74
74
74
76
76
76
76
76
77
78
78
79
79
80
80
80
81
81
82
82
84
86
86
88
88
88
89
89
90
90
90
90
90
90
90
91
91
91
91
91
91
91
92
92
93
94
95
95
96
99
99
100
100
101
102
105
108
109
109
111
111
113
114
114
115
116
116
116
119
120
120
121
124
129
129
135
136
136
137
137
137
138
139
143
143
144
144
144
147
156
159
160
164
169
189
190
191
245
246
247
247
247
249
258
262
263
279
282
283
1
4
4
4
5
5
5
5
5
5
5
5
5
5
6
6
7
7
7
8
8
8
8
8
8
9
9
9
9
9
10
11
11
11
12
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
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
27
27
27
27
27
27
27
28
28
28
28
29
29
29
30
30
31
32
32
33
33
34
34
34
34
35
36
36
39
39
40
41
41
42
42
42
43
44
44
44
45
46
46
47
47
47
48
49
50
50
50
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
55
55
56
56
56
56
56
57
57
57
57
57
58
58
58
58
58
58
59
60
60
60
61
61
61
61
62
62
62
63
63
64
64
64
64
65
65
65
67
68
68
68
69
69
69
69
70
70
71
71
71
72
72
72
73
73
73
73
73
74
74
75
75
75
76
76
77
77
77
78
79
79
81
81
81
81
82
85
87
87
89
89
89
90
90
91
91
91
91
91
91
91
91
92
92
92
92
92
93
94
95
96
97
99
100
100
100
100
100
101
102
103
105
106
109
110
112
112
113
114
116
117
117
117
120
121
121
122
125
130
130
137
137
138
139
139
140
143
144
144
145
145
145
148
155
157
160
161
165
170
190
191
192
246
247
248
248
248
250
259
263
264
280
283
284
4
4
4
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
7
7
7
7
7
8
8
9
9
9
9
10
10
10
10
11
11
11
12
12
12
12
13
13
13
13
14
14
14
14
14
14
14
15
15
15
16
16
16
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
25
26
26
26
26
26
26
26
27
27
28
28
28
28
28
28
28
29
31
31
32
33
33
34
34
35
35
35
35
36
37
37
40
40
42
42
43
43
43
44
45
45
45
46
47
47
47
47
48
48
48
48
49
49
49
49
49
50
50
50
50
50
51
51
51
51
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
56
56
57
57
57
57
57
57
57
57
58
58
58
58
58
59
59
59
59
59
59
60
60
61
61
61
61
62
62
62
62
64
65
65
65
65
66
66
68
69
69
69
69
69
70
70
70
70
71
71
71
72
72
72
73
73
74
74
75
75
75
75
76
76
76
76
77
78
78
78
79
80
82
82
86
88
88
88
88
89
90
90
91
91
91
91
91
91
92
92
92
92
93
93
93
93
93
94
95
95
95
96
97
98
100
101
101
101
102
103
104
107
110
113
113
114
115
117
118
118
118
121
121
122
122
123
123
126
131
138
138
139
140
141
144
145
145
146
146
146
149
149
158
161
162
166
168
168
171
191
192
193
247
248
249
249
249
251
260
264
265
281
284
285
1
1
1
1
1
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
7
7
7
7
8
8
8
8
8
9
9
10
10
10
10
10
10
11
11
12
12
12
12
12
12
13
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
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
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
25
25
25
26
26
27
27
27
28
28
28
28
29
30
32
32
32
33
34
34
35
36
36
36
36
36
37
38
38
41
41
43
43
44
44
44
45
46
46
46
47
47
48
48
48
48
48
48
49
49
49
49
50
50
50
50
50
50
50
50
50
50
51
51
51
52
52
52
52
52
52
52
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
55
55
55
55
55
56
56
56
56
56
57
57
57
57
57
57
57
58
58
58
58
58
58
58
58
58
58
59
59
59
59
60
60
60
60
60
60
60
60
61
61
61
62
62
62
63
65
65
65
65
66
66
66
66
67
67
69
69
69
69
69
70
70
70
71
71
71
71
71
72
72
72
72
73
73
74
74
74
74
75
75
75
76
76
76
76
76
77
77
78
79
79
79
79
79
80
81
82
82
82
85
87
88
89
89
90
91
91
91
92
92
92
92
93
93
93
93
94
94
94
94
94
95
96
96
96
97
98
99
101
101
102
102
102
103
105
108
111
114
114
115
116
118
119
119
119
123
123
124
124
127
132
139
139
140
141
142
145
146
146
147
147
147
150
150
150
159
162
163
167
169
172
192
193
194
248
249
250
250
250
252
261
265
266
266
282
285
286
1
1
1
1
4
4
4
5
5
5
5
5
5
5
5
5
5
5
6
6
6
7
7
7
7
7
7
7
7
7
7
8
8
8
8
9
9
9
9
9
10
10
10
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
13
13
13
13
13
13
14
14
14
14
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
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
26
26
26
26
28
30
33
33
33
34
36
37
37
37
37
37
38
39
39
42
42
42
43
43
44
44
44
44
45
46
46
46
46
47
47
47
48
48
48
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
52
52
52
52
52
52
53
53
53
53
54
54
54
54
55
55
55
55
55
55
55
55
55
56
56
56
56
56
57
57
57
57
57
57
57
58
58
58
58
58
59
59
59
59
59
59
59
59
59
59
60
60
60
60
61
61
61
61
61
62
62
63
63
64
64
65
66
66
67
67
67
67
67
68
68
69
69
70
70
70
70
70
70
71
71
71
71
71
72
72
72
72
73
74
74
75
75
75
75
75
76
76
76
76
77
77
77
79
79
80
80
80
80
80
81
82
82
83
83
86
88
89
90
90
90
91
92
92
93
93
93
93
94
94
94
94
95
95
95
95
95
95
96
97
97
97
98
100
102
102
102
102
102
103
103
106
109
112
115
115
116
117
119
120
120
120
124
124
125
125
128
130
130
133
140
140
141
142
143
146
147
147
148
148
148
150
150
151
151
160
163
164
168
170
173
193
194
195
249
250
251
251
251
253
262
266
266
267
267
283
286
287
1
1
1
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
6
6
7
7
8
8
8
8
8
8
8
9
9
9
10
10
11
11
11
11
11
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
26
27
27
27
29
31
34
34
34
36
36
37
38
38
38
38
38
39
40
40
43
43
43
43
43
43
44
44
45
45
45
45
45
46
46
47
47
47
47
48
48
48
48
48
48
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
54
54
54
54
55
55
55
55
55
56
56
56
56
56
56
57
57
57
57
57
57
57
57
58
58
58
58
58
58
59
59
59
59
60
60
60
60
60
60
60
60
61
61
61
62
62
62
62
62
63
63
64
64
64
65
65
66
66
67
67
68
68
69
69
69
69
69
70
70
71
71
71
71
71
71
71
71
71
72
72
72
72
73
73
74
75
75
75
76
76
76
77
77
77
77
78
78
79
79
79
80
81
81
81
81
81
81
81
82
83
87
87
89
90
91
91
91
91
92
93
94
94
95
95
95
95
95
96
96
96
96
96
97
98
99
100
100
101
102
102
103
103
104
104
107
110
113
116
116
117
118
120
121
121
121
125
125
126
126
129
131
134
141
141
142
143
144
147
148
148
149
149
149
151
152
161
164
164
165
165
169
171
174
194
195
196
250
251
252
252
252
254
263
268
268
284
287
288
1
1
1
4
4
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
7
7
7
7
8
8
9
9
9
9
10
10
10
10
11
11
11
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
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
25
26
26
26
29
30
32
35
35
37
37
38
38
39
39
39
39
40
40
41
41
44
44
44
44
44
44
45
45
45
45
45
45
46
46
46
46
46
47
47
47
47
47
47
48
48
48
48
48
48
48
48
49
49
49
49
49
49
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
53
53
53
53
53
53
54
54
54
54
55
55
55
55
55
55
56
57
57
57
57
57
57
57
57
58
58
58
58
59
59
59
59
60
60
60
60
60
60
61
61
61
61
62
62
62
62
62
62
62
63
63
63
64
64
65
65
65
66
68
69
69
69
70
70
70
71
71
72
72
72
72
72
72
72
72
73
73
73
74
74
75
75
76
76
76
77
77
77
78
78
78
79
79
79
79
80
80
80
81
82
82
83
84
88
88
88
88
90
91
92
92
92
94
95
95
95
96
96
96
96
96
97
97
97
97
97
98
99
100
100
100
100
101
102
103
104
104
105
105
108
111
114
117
117
118
119
121
122
122
122
126
126
127
127
130
132
135
137
142
142
142
143
144
145
148
149
150
150
150
150
151
153
153
162
166
166
170
172
175
195
196
197
251
252
253
253
253
255
264
269
269
285
288
289
1
1
1
4
4
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
7
7
7
7
7
7
8
8
8
8
9
9
10
10
10
11
11
11
12
12
12
12
13
13
13
13
13
13
13
13
13
14
14
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
23
24
24
24
24
24
24
24
24
26
26
26
26
27
27
30
31
33
36
36
38
38
39
39
40
40
40
40
40
41
41
42
42
43
43
43
43
45
45
45
45
45
45
46
46
46
46
46
47
47
47
47
47
47
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
53
53
53
53
53
54
55
55
55
55
56
57
58
58
58
58
58
58
58
58
58
58
59
59
60
60
60
60
61
61
61
61
61
62
62
62
62
63
63
64
64
64
65
65
66
66
67
68
69
70
70
70
71
71
72
72
72
72
73
73
73
74
74
74
75
76
77
77
77
78
79
79
79
80
80
80
80
80
81
81
81
81
81
83
83
83
83
84
85
85
86
88
88
89
89
90
91
91
92
93
93
93
95
96
96
96
97
97
97
97
97
98
98
98
98
98
99
100
100
100
101
101
102
102
102
103
103
104
106
106
109
112
113
115
118
118
119
120
122
123
123
123
127
127
128
128
131
133
135
136
137
138
138
143
143
143
143
144
145
146
148
148
149
150
151
151
151
154
154
163
167
167
171
173
176
196
197
198
252
253
254
254
254
256
265
270
270
286
289
290
1
1
1
1
1
1
2
4
4
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
9
9
9
10
10
10
11
11
11
11
11
12
12
12
12
13
13
13
13
13
13
13
13
14
14
15
15
15
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
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
25
26
27
27
27
28
28
31
31
31
32
33
33
34
36
37
37
39
40
40
40
40
40
41
41
41
41
41
41
42
42
43
43
44
44
44
44
45
45
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
48
48
48
48
48
48
49
49
49
49
49
49
50
50
50
50
50
51
51
51
51
51
51
51
51
51
52
52
52
53
53
53
53
53
53
53
54
54
54
54
55
55
55
56
56
57
57
57
57
58
58
58
58
59
59
59
59
59
59
59
59
59
59
60
60
60
60
61
61
61
62
62
63
63
63
63
64
64
65
65
65
65
67
67
68
68
70
70
70
71
71
72
72
72
72
72
72
72
72
72
73
73
74
74
74
75
75
75
75
76
77
78
79
80
80
80
81
81
81
82
82
82
82
82
82
83
84
85
86
86
89
90
90
90
91
91
91
92
93
94
94
95
96
97
97
97
98
98
98
98
98
99
99
99
99
99
100
100
101
102
102
103
103
103
104
104
107
107
110
113
114
114
114
116
119
119
120
121
123
124
124
124
128
128
129
129
132
134
136
137
138
144
144
145
146
147
149
150
151
152
152
155
155
164
168
168
172
174
177
197
198
199
253
253
255
255
255
257
266
271
271
287
290
291
2
3
4
5
5
5
5
5
5
5
5
5
5
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
10
10
11
11
11
11
11
12
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
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
25
25
25
25
25
25
25
26
26
26
27
29
29
32
32
32
33
34
34
35
37
38
38
40
41
41
41
42
42
42
42
42
42
43
43
44
44
44
44
45
45
45
45
45
46
46
46
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
49
49
49
49
49
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
52
52
52
52
52
52
52
53
53
53
53
53
53
54
54
54
55
55
55
56
57
57
57
57
57
58
58
58
59
59
59
59
60
60
60
60
60
61
61
61
61
62
62
63
63
64
64
64
64
65
66
66
68
68
68
69
69
70
71
71
71
72
72
73
73
73
73
73
73
73
73
74
74
75
75
75
76
76
76
76
76
77
77
77
79
80
80
81
81
81
81
81
82
82
83
83
83
83
85
86
87
87
88
88
90
91
92
92
93
95
95
96
97
98
98
98
98
99
99
99
99
100
100
100
100
101
102
102
102
102
103
104
105
105
108
108
111
114
114
115
115
117
120
120
121
122
124
125
125
125
129
129
130
130
133
135
136
138
138
145
145
146
147
148
150
151
152
153
153
156
156
165
169
169
173
175
178
198
199
200
253
254
254
256
256
256
258
267
272
272
288
291
292
4
4
4
4
5
5
5
5
5
5
5
5
6
7
7
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
10
10
10
10
10
11
11
11
12
12
13
13
13
13
13
13
14
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
26
26
26
26
27
30
30
31
33
33
33
33
33
35
35
36
38
39
41
42
42
42
43
43
43
43
43
43
44
44
45
45
45
45
45
46
46
46
46
46
46
46
46
47
47
47
47
47
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
51
51
51
51
51
51
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
54
54
55
55
55
56
56
57
57
57
58
58
59
59
59
59
60
60
60
61
61
61
61
62
62
62
62
62
63
63
64
64
65
65
65
65
65
66
67
67
67
68
69
69
70
70
70
70
72
72
72
73
74
74
74
74
74
74
74
74
75
76
76
76
77
77
77
77
77
78
78
78
79
79
80
80
80
80
81
81
82
82
82
82
82
83
83
83
86
87
88
88
89
91
92
92
92
92
93
93
93
94
95
96
96
97
98
99
99
100
100
100
100
101
101
101
101
102
102
102
103
103
103
103
103
103
104
106
106
109
109
112
115
115
115
118
120
121
122
122
123
125
126
126
126
130
130
131
131
134
136
136
137
139
144
144
146
146
147
148
149
151
152
153
154
154
157
157
166
170
170
176
179
199
200
201
255
255
257
257
257
259
268
273
273
289
292
293
1
1
1
1
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
7
7
8
9
9
9
9
9
10
10
10
10
10
10
11
11
12
12
12
12
12
13
13
13
13
13
14
14
14
14
15
15
15
15
15
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
27
27
27
28
31
31
32
34
34
34
36
36
37
38
40
40
40
42
43
43
43
44
44
44
44
44
44
44
45
45
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
52
52
52
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
55
56
56
57
57
57
57
57
57
58
59
59
59
60
61
61
61
62
62
62
62
63
63
64
64
65
65
65
65
66
66
67
69
70
70
71
71
72
73
74
75
75
75
75
75
75
75
76
76
77
77
77
78
78
79
79
80
80
80
81
81
82
82
83
83
83
83
83
83
84
84
87
88
88
88
89
89
90
91
93
93
94
94
94
95
96
96
97
97
98
98
99
100
100
101
101
101
101
102
102
102
102
103
104
104
104
104
105
107
107
110
110
113
116
119
122
123
123
124
126
127
127
131
131
132
132
135
137
137
137
140
145
145
145
145
145
145
147
147
148
149
150
152
153
154
155
155
158
158
167
171
171
177
180
200
201
202
256
256
258
258
258
260
269
274
274
290
293
294
1
1
1
1
2
4
4
5
5
5
5
5
5
5
5
6
6
6
6
6
7
7
7
7
8
8
8
8
9
9
9
9
9
10
10
11
11
11
11
11
11
11
11
12
12
12
12
13
13
13
13
14
14
14
14
14
15
15
15
15
15
15
15
15
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
24
24
24
25
25
26
26
27
27
28
28
28
28
28
28
32
32
33
35
35
35
37
37
38
39
41
41
41
41
43
44
44
44
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
53
53
53
53
53
53
54
54
54
54
54
54
54
55
55
55
55
55
56
57
57
57
57
57
58
58
58
59
60
61
61
61
62
62
62
62
62
63
63
63
63
64
64
65
65
66
66
66
67
67
67
68
70
70
70
71
72
72
72
72
73
74
75
76
76
76
78
78
78
79
79
80
80
81
81
81
81
82
82
83
83
84
84
84
84
85
85
88
88
88
89
89
89
90
90
92
92
92
92
92
94
94
96
96
98
98
98
99
99
99
100
100
101
101
102
102
102
103
103
103
103
103
103
103
104
105
105
105
105
106
108
108
111
111
117
120
123
124
124
125
127
128
128
132
132
133
133
137
138
138
138
141
145
145
146
146
146
148
148
149
150
151
153
154
155
156
156
159
159
168
172
172
178
181
201
202
203
257
257
259
259
259
261
270
275
275
291
294
294
295
4
4
4
5
5
5
5
5
6
7
7
7
7
7
7
8
8
8
8
8
8
8
8
9
9
9
10
10
10
10
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
13
13
13
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
24
24
24
24
24
25
25
25
26
26
26
28
28
29
29
29
33
33
36
36
36
38
38
39
40
42
42
42
42
42
42
43
43
43
44
44
45
45
45
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
52
52
53
53
53
53
53
53
53
53
53
53
53
54
54
54
55
55
55
55
55
55
55
55
56
56
56
56
57
57
58
59
59
59
59
59
59
60
60
61
61
61
61
61
62
62
63
63
63
63
63
64
64
64
64
65
65
65
66
67
68
68
68
69
69
70
70
70
71
71
72
72
72
72
73
73
73
73
73
77
77
77
78
79
79
79
80
80
80
81
81
81
82
82
82
82
83
83
84
85
85
86
86
89
90
90
90
90
91
91
93
93
96
97
98
99
99
99
99
100
100
100
101
101
101
101
102
102
102
103
103
103
103
103
103
103
104
104
104
104
104
104
105
106
107
109
109
112
112
118
121
124
125
125
126
126
126
128
129
129
133
133
134
134
138
138
139
139
142
146
147
147
147
149
150
151
152
154
155
156
157
157
160
160
169
173
173
179
182
202
203
204
258
258
260
260
260
262
271
276
276
292
294
295
296
1
4
4
5
5
5
5
6
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
11
11
11
11
11
11
11
12
12
12
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
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
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
22
22
22
22
22
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
25
25
25
25
26
27
27
30
30
30
34
34
37
37
37
38
38
39
39
40
40
40
41
41
43
43
43
43
43
44
44
44
45
45
46
46
46
46
46
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
52
52
52
53
53
53
53
54
54
54
54
54
54
54
54
54
56
56
56
56
56
57
57
57
57
59
59
59
59
60
60
61
61
62
62
62
62
62
63
63
63
63
64
64
64
65
65
65
65
66
66
66
66
67
67
67
67
68
69
69
69
70
70
70
71
71
72
72
72
72
72
72
72
73
73
74
74
74
74
75
78
78
78
78
80
80
80
80
81
81
81
82
82
82
83
83
83
84
84
85
86
86
86
87
87
90
91
91
91
91
92
92
92
92
94
94
94
96
96
98
99
100
100
100
101
101
101
101
102
102
103
103
104
104
104
104
105
105
105
105
105
105
105
105
106
107
108
110
110
113
113
119
122
125
126
126
127
127
129
130
130
134
134
135
135
138
138
139
140
140
143
147
150
150
151
152
152
153
155
156
157
158
158
161
161
170
174
174
180
183
203
204
205
259
259
261
261
261
263
272
277
277
293
296
297
1
1
2
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
7
7
7
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
11
11
11
11
11
11
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
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
26
26
26
26
27
27
28
28
31
31
31
35
35
35
37
38
38
39
39
39
40
40
41
41
41
41
41
41
41
42
42
43
43
43
44
44
44
44
44
44
45
45
45
45
45
45
46
46
46
46
47
47
47
48
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
50
50
50
51
51
51
51
51
51
51
51
52
52
52
52
52
52
53
53
53
53
53
53
53
54
54
54
54
54
55
55
55
55
55
55
56
56
57
57
57
57
58
58
60
60
60
61
62
62
63
63
63
63
63
63
64
64
64
65
65
65
66
66
66
66
66
66
66
67
67
67
68
68
68
69
70
70
71
72
72
73
73
73
73
73
74
74
75
75
75
75
79
79
79
80
81
81
81
82
82
82
83
83
83
83
83
83
84
84
84
84
84
85
85
86
87
87
87
88
88
91
92
92
92
92
92
93
93
93
93
94
95
97
97
98
98
98
99
100
101
101
101
102
102
103
103
103
104
104
105
105
105
105
106
106
106
106
106
106
106
107
108
109
111
111
113
114
114
118
120
123
126
127
127
128
128
130
131
131
135
135
135
136
136
139
139
140
141
144
151
151
152
153
154
156
157
157
158
159
159
162
162
171
173
175
175
177
181
184
204
205
206
260
260
262
262
262
273
278
278
294
297
298
1
1
1
1
2
2
3
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
7
7
7
7
7
7
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
10
10
11
11
11
11
11
11
11
11
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
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
24
25
25
25
25
26
26
26
26
27
27
27
27
27
28
28
29
29
32
32
32
34
34
36
36
36
38
38
39
39
39
40
40
40
41
41
41
42
42
42
42
42
42
42
42
42
43
43
43
43
43
44
44
44
44
45
45
45
45
45
45
46
46
46
46
46
46
46
46
47
47
47
47
47
48
48
49
49
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
52
52
53
53
53
53
54
54
54
54
55
55
55
55
55
55
56
56
56
56
56
58
58
59
59
60
62
62
63
63
63
64
64
64
64
64
64
65
65
65
66
67
67
67
68
68
68
69
69
69
69
70
71
71
71
71
71
72
72
72
72
73
73
73
73
73
73
73
73
74
74
74
75
75
75
76
76
76
78
78
80
80
80
80
80
82
82
82
82
83
83
83
84
84
84
84
84
84
85
85
86
86
87
87
87
88
88
89
89
91
91
91
92
92
93
93
93
93
93
94
94
94
94
99
99
99
99
100
102
102
103
103
104
104
104
104
105
105
106
106
106
107
107
107
107
107
108
110
112
112
115
115
119
121
124
127
128
128
129
129
131
132
132
136
136
137
137
138
138
140
140
142
145
149
151
152
153
155
157
158
158
159
160
160
163
163
172
176
176
178
182
185
205
206
207
261
261
263
263
274
279
279
295
298
299
1
1
1
3
3
4
4
5
5
5
5
5
6
6
6
7
7
7
7
7
7
7
7
7
7
7
8
8
8
9
9
9
9
9
9
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
23
23
23
23
23
23
24
24
24
24
24
25
26
26
26
26
27
27
27
27
28
28
28
28
28
29
29
30
33
33
33
35
35
37
37
39
39
39
40
40
40
41
41
41
41
41
41
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
45
45
45
45
45
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
48
48
48
48
48
49
49
49
49
49
49
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
52
52
52
53
53
53
53
53
54
54
54
54
54
55
55
55
55
55
55
56
56
56
57
57
57
59
59
60
60
60
61
63
64
64
65
65
65
66
67
67
68
68
69
69
69
70
70
70
70
71
73
73
73
73
74
74
74
74
75
75
76
76
76
77
77
77
79
79
81
81
81
81
81
83
83
83
84
84
84
85
85
86
86
87
87
88
89
89
90
90
92
92
92
93
93
93
93
94
94
94
94
95
95
95
95
100
100
101
103
103
104
104
105
105
106
106
107
107
107
108
108
108
109
111
113
113
116
116
120
122
125
128
129
129
130
130
132
133
133
137
137
138
138
138
139
141
143
146
148
150
153
154
156
158
159
159
160
161
161
164
164
173
177
177
179
183
186
206
207
208
262
262
264
264
278
280
280
296
299
300
1
1
1
1
1
4
4
4
5
5
5
5
5
6
7
7
7
7
8
8
8
8
8
8
8
8
8
8
9
9
9
9
10
10
10
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
14
14
14
14
14
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
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
23
23
24
24
24
24
25
26
27
27
27
27
28
28
29
29
29
29
29
30
30
31
34
34
34
36
36
38
40
40
40
40
40
40
41
41
41
42
42
42
42
42
42
42
42
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
48
48
48
48
48
48
48
49
49
49
49
49
50
50
50
50
51
51
51
51
51
51
51
51
52
52
52
52
52
53
53
54
54
55
55
55
55
56
56
56
57
57
57
57
57
58
58
60
60
60
61
61
62
63
63
64
65
65
65
66
66
66
67
68
68
68
69
69
69
70
70
71
71
72
73
73
73
73
74
74
75
75
75
75
77
77
77
77
78
80
80
80
81
82
82
82
82
84
84
84
84
84
85
85
86
86
88
88
89
90
90
91
91
91
92
93
93
93
94
94
95
95
95
95
96
96
96
100
102
104
104
105
105
105
105
106
106
106
107
107
108
108
108
109
109
109
110
112
114
114
117
117
121
123
126
129
130
130
131
131
133
134
134
136
138
138
138
139
139
139
140
142
144
145
147
151
151
151
154
155
157
159
160
160
161
162
165
165
174
178
178
180
184
184
187
187
207
207
209
263
263
265
274
279
281
281
297
300
301
1
1
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
7
8
8
8
8
9
9
9
9
9
9
9
9
9
9
10
10
11
11
11
11
11
11
11
11
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
23
23
23
24
24
25
25
25
26
27
28
28
29
29
30
30
30
30
31
31
31
32
34
35
35
35
36
37
38
39
39
41
41
41
41
41
41
41
41
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
50
50
50
50
50
51
51
52
52
52
52
52
52
53
53
53
53
53
53
53
54
54
54
55
55
56
56
56
57
57
57
58
58
58
59
59
60
61
62
62
63
63
63
64
64
65
65
65
66
66
66
68
69
70
70
70
71
71
71
71
72
73
74
74
74
78
79
80
80
82
82
83
83
83
85
85
85
86
86
87
89
90
91
91
91
92
92
92
92
93
95
95
95
95
96
96
96
97
97
100
101
103
105
105
105
106
106
106
106
107
107
108
108
109
109
109
110
110
110
111
113
114
115
115
118
118
122
124
127
130
131
131
132
132
134
135
135
137
138
138
139
139
139
139
140
140
143
145
145
145
146
148
152
152
152
152
152
155
156
158
160
161
161
162
163
166
166
175
179
179
181
188
188
207
208
208
210
264
266
280
282
282
298
301
302
1
1
1
4
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
7
7
7
7
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
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
23
23
23
24
24
26
26
27
28
29
29
30
30
31
31
31
31
32
32
32
33
35
35
35
36
36
36
37
38
38
39
39
39
40
40
41
41
41
41
41
41
42
42
42
42
42
42
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
46
47
47
47
48
48
48
48
48
48
48
48
48
49
49
49
49
49
50
50
50
50
51
51
51
51
52
52
53
53
53
53
53
54
54
54
54
54
54
55
55
55
56
56
56
56
57
57
57
57
57
58
58
58
58
59
59
60
60
60
60
61
61
61
62
62
62
63
63
64
65
65
66
67
67
67
69
70
70
71
71
71
71
71
71
71
71
72
72
72
73
73
73
74
74
75
75
75
75
79
79
80
80
81
81
83
83
83
84
84
84
84
86
87
87
87
88
90
91
91
92
92
92
92
93
93
93
95
95
96
96
96
97
97
98
98
101
104
105
106
106
106
106
107
107
107
108
108
109
109
110
110
110
111
111
111
111
112
114
115
116
116
119
119
123
125
125
128
128
131
132
132
133
133
135
136
136
139
140
140
140
141
141
144
145
146
146
146
147
149
149
152
152
152
152
153
153
153
156
157
159
161
161
161
162
162
163
164
167
167
176
180
180
182
189
189
209
209
211
265
267
281
283
283
299
302
303
1
4
5
5
5
5
5
5
5
5
6
6
6
7
7
7
7
7
8
8
9
9
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
21
21
21
21
21
22
22
22
22
22
22
24
24
24
24
24
25
25
25
27
27
28
29
30
31
31
32
32
32
32
33
33
33
34
36
36
36
37
37
38
39
39
39
39
40
40
40
41
41
41
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
48
49
49
49
49
49
49
49
49
49
50
50
50
50
50
51
51
51
51
51
52
53
54
54
54
54
54
55
55
55
55
55
55
56
57
57
57
57
57
58
58
58
59
59
59
60
60
61
61
61
61
62
62
63
63
63
64
64
66
66
68
68
70
70
71
71
72
72
72
72
72
73
73
73
73
73
73
73
73
74
74
75
75
75
76
76
79
80
81
81
82
82
84
84
84
85
85
85
87
88
88
89
91
92
92
93
93
93
93
94
94
94
94
96
97
97
97
98
99
99
101
105
106
106
106
107
107
107
108
108
108
108
109
109
110
110
111
111
111
112
112
112
112
113
115
115
115
117
117
120
120
124
129
129
133
133
134
134
136
137
137
139
141
141
141
142
142
145
147
148
150
150
153
153
154
154
154
157
157
158
158
160
162
162
163
163
164
165
168
168
177
181
181
183
190
190
210
210
212
266
268
282
284
284
300
303
304
1
1
1
4
4
4
4
5
5
5
5
5
5
5
5
6
7
7
8
8
8
8
9
9
9
9
9
9
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
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
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
23
23
23
23
25
26
28
28
29
31
32
32
33
33
33
33
33
34
34
34
35
35
37
37
37
37
38
38
38
39
39
39
40
40
40
40
40
40
41
41
41
41
42
42
42
42
42
42
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
48
48
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
51
51
51
51
52
52
52
52
55
55
55
55
55
56
56
56
56
57
58
58
59
60
60
60
61
61
62
62
62
63
63
63
64
64
65
65
67
67
69
69
71
71
71
72
72
73
73
73
73
73
73
74
74
74
74
74
75
75
76
76
76
77
80
81
82
82
83
84
85
86
86
86
88
89
89
90
90
91
92
93
93
93
93
93
94
94
94
94
95
95
95
95
95
95
97
99
99
100
100
104
105
106
107
107
107
108
108
109
109
110
111
111
112
112
112
113
113
113
113
114
115
116
116
116
118
118
121
121
125
130
130
134
134
135
135
137
138
138
138
142
143
143
143
146
148
148
151
151
154
154
155
159
159
161
163
163
164
164
165
166
169
169
178
182
182
184
191
191
211
211
213
262
267
269
283
285
285
301
304
305
4
4
4
5
5
5
5
5
5
5
5
5
6
6
6
6
6
7
7
7
7
7
8
9
9
9
9
9
9
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
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
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
24
24
24
25
25
25
26
26
27
27
28
29
29
30
31
31
32
33
33
33
33
34
34
34
34
34
35
35
35
36
36
36
36
38
38
38
39
39
39
39
40
40
40
41
41
41
41
41
41
41
41
42
42
42
42
42
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
48
48
49
49
49
49
49
49
50
50
50
50
50
51
51
51
51
51
51
52
52
52
53
53
53
53
53
55
55
55
55
56
56
56
56
56
57
57
57
57
57
58
58
58
60
61
61
62
62
62
62
63
63
63
64
64
65
66
66
66
66
68
68
70
70
70
70
71
71
71
72
72
73
73
73
74
74
74
75
75
75
75
76
76
77
77
81
82
82
83
83
83
83
84
85
87
87
87
87
90
90
91
91
92
92
92
93
93
93
94
94
94
94
95
95
95
95
96
96
96
96
97
100
100
100
100
100
101
101
105
105
106
106
107
108
108
109
110
110
111
112
112
113
113
113
114
114
114
114
115
116
116
117
117
119
119
122
122
126
131
131
135
135
136
136
137
137
138
138
139
139
139
141
141
143
144
144
144
147
149
152
152
152
152
156
160
160
162
164
164
165
165
166
167
170
170
179
183
183
185
192
192
212
212
214
263
265
268
270
284
286
286
302
305
306
2
4
5
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
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
25
25
26
27
27
28
28
29
30
30
31
31
32
32
33
33
34
34
34
35
35
35
35
35
36
36
36
37
37
37
37
39
39
39
39
39
40
40
40
40
40
41
41
41
41
41
42
42
42
42
42
42
42
42
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
48
48
48
48
49
49
49
49
49
49
50
50
50
50
50
50
50
50
51
51
51
52
52
52
52
52
52
52
52
52
52
53
53
53
54
54
54
55
55
56
56
57
57
57
57
57
58
58
58
58
58
58
58
59
59
60
61
62
62
62
62
63
64
64
64
64
64
65
65
67
67
67
68
68
69
69
71
71
71
71
71
72
72
73
73
73
74
74
74
74
74
74
74
75
75
76
76
76
76
76
76
76
77
78
80
82
82
83
83
84
84
84
84
88
88
91
91
91
92
92
93
93
93
93
94
94
94
94
95
95
95
95
96
96
96
96
97
97
97
97
97
98
101
101
101
102
102
108
108
109
109
110
111
111
112
113
113
114
114
114
115
115
115
115
116
116
116
117
118
118
120
120
123
127
131
132
132
135
136
136
137
137
138
138
139
140
140
140
142
144
144
145
145
148
148
150
151
152
152
153
153
153
153
157
161
161
163
165
166
166
167
168
171
171
180
184
184
186
193
193
213
213
215
266
269
271
285
287
287
303
306
307
2
3
4
5
5
5
5
5
5
5
5
6
6
6
6
7
7
8
8
8
8
9
9
9
9
9
9
9
9
10
10
10
10
10
10
11
11
11
11
11
11
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
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
23
23
23
23
23
23
24
24
25
25
26
26
27
27
27
28
28
29
30
31
31
32
32
33
33
33
34
34
35
35
35
36
36
37
37
37
37
37
38
38
38
38
38
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
43
43
43
43
43
43
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
48
48
48
49
49
49
49
49
50
50
50
50
50
50
50
50
51
51
51
51
51
51
52
52
52
52
52
52
53
53
53
53
54
54
54
55
55
55
55
56
56
56
57
57
57
58
58
58
58
59
59
59
59
59
60
60
61
61
63
63
64
65
65
65
65
65
65
65
65
66
66
66
68
68
68
68
69
69
69
71
71
72
72
72
73
73
73
73
74
74
74
75
75
75
76
76
76
76
76
76
76
77
77
77
77
77
77
79
81
81
83
83
83
83
84
85
85
85
85
85
87
87
89
89
92
92
92
92
93
93
94
94
95
95
95
95
95
95
95
96
96
96
97
97
98
98
99
101
102
103
103
107
109
109
110
110
111
111
112
112
113
114
114
115
115
115
116
116
116
116
117
117
118
119
121
121
124
128
133
133
136
137
137
138
138
139
139
140
141
141
141
141
143
144
145
146
146
148
149
149
151
152
154
154
154
154
158
162
162
164
166
167
167
168
169
172
172
181
185
185
187
194
194
214
214
216
267
270
272
286
288
288
304
307
308
3
4
4
5
5
5
5
5
5
5
5
5
6
7
7
8
8
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
23
23
24
24
24
24
25
25
26
27
27
28
28
29
30
31
31
32
32
33
33
33
34
34
35
35
35
36
36
37
37
37
37
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
40
41
41
41
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
44
44
44
44
44
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
48
48
49
49
49
49
49
50
50
50
50
50
50
51
51
51
51
51
51
52
52
52
52
52
52
52
53
54
55
55
55
56
56
56
57
57
57
58
58
58
59
59
59
59
60
60
60
61
61
62
64
64
64
65
66
66
66
66
66
66
66
66
66
67
69
73
73
73
74
74
75
75
75
75
76
76
77
77
77
77
77
77
78
78
78
78
78
78
80
81
83
83
84
84
84
85
85
85
85
85
86
86
86
86
88
88
90
90
92
93
93
94
94
94
95
95
96
96
96
96
96
96
96
96
97
97
97
98
99
99
100
101
103
104
104
106
106
106
107
108
112
112
113
113
114
115
115
116
116
116
116
116
117
117
117
117
118
118
120
122
122
122
122
125
129
134
134
137
138
138
138
139
139
141
141
141
142
142
142
142
144
146
147
147
148
149
150
150
152
155
155
155
155
159
163
163
164
165
166
167
168
168
169
170
173
173
182
186
186
188
195
195
215
215
217
268
271
273
287
289
289
305
308
309
1
1
1
4
5
5
5
5
6
7
7
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
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
24
25
25
26
26
27
28
28
29
29
30
31
31
32
32
33
33
33
33
34
34
35
35
35
36
36
36
36
36
36
37
37
37
37
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
41
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
45
45
45
45
45
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
49
49
49
49
50
50
50
51
51
52
52
52
52
52
52
53
53
53
53
53
53
55
55
55
56
56
56
56
56
56
57
57
57
58
58
58
59
60
60
60
61
61
61
61
62
62
62
65
65
65
65
65
66
66
66
66
66
66
67
67
67
67
67
67
68
70
71
74
74
75
75
75
76
76
76
77
77
78
78
78
78
78
78
79
79
79
79
79
81
81
83
84
84
84
85
85
86
86
86
87
87
87
89
89
91
92
94
94
95
95
95
95
95
96
96
96
97
97
97
97
97
97
97
98
98
99
100
100
100
101
104
105
105
106
107
107
108
108
108
108
109
113
113
114
114
115
116
116
117
117
117
117
118
118
118
118
119
121
123
123
123
126
130
135
135
138
139
139
140
140
142
142
143
143
143
143
144
145
147
148
148
149
150
151
155
155
156
156
160
164
164
166
167
168
169
169
170
171
174
174
183
187
187
189
196
196
216
216
218
269
272
274
288
290
290
306
309
310
1
1
1
1
1
1
4
4
5
5
5
5
5
5
5
5
5
6
6
6
9
9
9
9
9
9
9
10
10
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
21
21
21
22
22
22
22
22
22
23
23
25
26
26
27
27
27
27
29
29
30
30
31
32
32
33
33
34
34
34
34
35
35
35
36
36
36
36
37
37
37
37
37
37
38
38
38
38
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
46
46
47
47
47
47
47
48
48
48
49
49
49
49
49
50
51
51
51
52
52
53
53
53
53
53
54
54
54
54
54
55
55
56
56
56
56
56
56
56
57
57
57
57
57
57
58
58
61
61
61
61
62
62
62
62
62
63
66
66
66
66
67
67
67
67
67
67
68
68
68
68
68
69
71
71
75
75
76
76
76
76
77
77
77
78
78
79
79
80
80
80
80
80
80
80
81
81
82
84
84
85
85
85
87
87
87
87
88
92
92
92
93
93
95
95
95
95
96
96
96
96
96
96
96
96
96
96
97
98
98
98
98
99
99
100
101
101
101
102
105
106
106
107
107
109
109
109
109
109
110
114
114
115
115
116
116
117
117
118
118
118
118
119
119
119
119
120
122
124
124
124
127
131
136
136
139
140
140
141
141
143
143
144
144
146
148
149
149
150
152
157
157
161
165
165
168
169
170
170
171
172
175
175
184
188
188
190
197
197
217
217
219
270
273
275
289
291
291
307
310
311
1
1
1
1
1
1
5
5
5
5
5
5
6
6
7
7
7
9
9
9
9
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
21
21
21
21
22
22
22
23
23
23
23
23
24
24
26
26
26
26
26
28
28
28
28
30
31
31
32
33
33
34
35
35
35
35
36
36
36
37
37
37
37
37
38
38
38
38
38
38
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
47
47
47
47
47
47
47
47
48
48
49
49
49
50
50
50
50
51
51
51
51
51
52
52
53
53
53
53
53
54
54
54
54
54
55
55
55
55
56
56
57
57
57
57
57
58
58
58
58
58
58
58
59
59
59
61
61
62
62
62
62
62
63
63
63
63
64
64
64
66
66
66
67
67
67
67
67
68
68
68
68
68
68
68
69
69
69
70
70
72
73
73
76
76
76
77
77
78
78
78
78
79
80
80
80
80
81
81
81
81
81
82
82
82
83
83
83
83
83
85
85
86
86
87
88
88
89
93
93
93
94
94
94
94
96
96
96
96
96
96
97
97
97
97
97
97
97
97
97
98
99
99
100
100
101
102
102
102
103
105
106
107
107
108
108
109
110
110
110
114
115
115
116
116
116
117
117
118
118
118
119
119
119
120
120
120
120
120
121
123
125
125
125
128
132
137
137
139
140
141
142
142
142
144
145
145
145
147
148
149
150
150
151
153
158
158
162
166
166
169
170
171
171
172
173
176
176
185
189
189
191
198
198
218
220
271
274
276
290
291
292
292
308
311
312
1
1
1
1
1
1
4
4
4
5
5
5
5
5
5
5
6
7
7
8
8
8
9
9
9
9
10
10
10
11
11
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
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
21
21
21
22
22
22
23
24
24
24
24
24
24
24
24
25
25
27
27
27
29
29
29
29
29
29
29
31
31
32
33
33
34
34
34
35
35
35
36
36
36
36
37
37
37
37
38
38
38
38
38
38
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
44
44
44
44
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
49
49
49
49
49
50
50
50
51
51
51
52
52
52
53
53
53
53
54
54
54
54
54
55
55
55
55
56
56
56
56
56
57
57
57
57
58
58
58
59
59
59
59
60
62
62
63
63
63
63
64
64
64
64
64
65
67
67
67
67
68
68
68
68
69
69
69
69
69
70
71
71
71
71
73
74
74
74
76
76
76
76
76
76
76
76
77
77
77
77
78
78
79
79
79
81
81
81
82
82
82
82
82
83
83
84
84
84
84
84
84
85
86
86
87
88
89
89
90
93
94
95
95
95
95
95
96
97
97
97
98
98
98
98
98
98
98
98
99
100
101
101
101
101
101
102
103
103
103
104
106
106
107
108
108
115
116
116
117
117
117
118
119
119
120
120
120
121
121
121
121
121
122
124
126
126
126
129
133
138
138
138
138
141
141
142
143
144
145
145
146
146
146
148
149
150
151
151
154
159
159
163
167
167
170
171
172
172
173
174
177
177
186
190
190
192
199
199
219
221
272
275
276
277
291
292
292
293
309
312
313
1
5
5
5
5
5
5
5
6
6
7
7
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
10
10
10
10
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
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
20
20
20
20
21
21
21
21
21
21
21
21
21
21
22
22
22
23
23
24
25
25
25
25
26
26
27
28
28
28
30
30
30
30
30
30
31
32
32
33
33
34
34
35
35
35
35
35
35
36
36
36
36
36
37
37
37
37
37
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
40
40
40
40
40
41
41
41
41
41
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
46
46
46
46
46
46
47
47
47
47
47
47
47
47
48
48
48
48
49
49
50
50
50
51
51
51
52
52
53
53
53
53
53
54
54
54
55
56
56
56
56
57
57
57
57
58
58
58
58
58
58
58
58
58
59
59
60
60
60
60
61
62
63
64
64
64
64
64
64
64
64
65
65
65
66
66
66
67
67
68
68
68
69
69
69
69
70
71
72
72
72
72
74
74
75
75
75
75
76
76
76
77
77
77
77
77
77
77
77
78
78
78
78
79
79
80
80
80
80
82
82
82
83
83
83
84
85
85
85
85
85
85
86
87
87
89
90
90
91
94
95
96
96
96
96
96
96
97
98
98
98
99
99
99
99
99
99
99
101
102
102
102
103
104
104
104
105
108
109
109
116
117
117
118
118
119
120
120
121
121
121
122
122
122
122
122
123
125
127
127
127
130
134
139
139
139
141
142
142
143
144
146
147
147
147
149
150
150
151
152
152
155
160
160
164
168
168
171
172
173
173
174
175
178
178
187
191
191
193
200
200
220
222
273
275
277
278
292
293
294
310
313
314
1
1
1
4
4
4
4
4
4
5
5
5
5
5
5
5
5
6
6
6
6
8
8
8
9
9
9
9
9
9
9
9
10
10
10
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
13
13
13
13
13
13
13
14
14
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
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
23
24
24
25
25
25
26
26
26
27
27
28
29
29
29
31
31
31
31
31
31
32
33
33
33
34
34
35
35
35
36
36
36
36
36
36
36
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
42
42
42
42
42
42
42
42
42
42
42
43
43
43
43
44
44
44
44
44
44
45
45
45
45
45
46
46
46
46
47
47
47
47
47
48
48
48
48
48
49
49
49
50
50
50
50
50
50
51
51
51
52
52
52
52
53
54
54
54
54
55
55
56
56
56
57
57
57
57
57
57
58
58
58
58
58
58
59
59
59
59
59
60
60
61
61
62
62
64
65
65
65
65
65
65
66
66
66
66
66
67
67
67
67
67
67
68
69
69
69
70
70
70
70
71
72
73
73
75
75
76
76
76
76
76
77
77
78
78
78
78
78
78
78
78
79
79
79
79
81
81
81
83
83
83
84
84
84
84
85
85
85
85
86
86
86
87
88
90
90
91
92
94
94
96
96
97
97
97
98
98
98
99
99
100
100
100
100
102
102
103
103
104
105
105
105
106
108
109
110
110
110
116
117
118
118
119
119
121
121
122
122
122
123
123
123
123
123
124
126
128
128
128
131
135
140
140
141
142
143
143
144
145
148
148
148
150
151
151
152
153
153
156
161
161
165
169
169
172
173
174
174
175
176
179
179
188
192
192
194
201
201
216
221
223
274
278
279
293
294
295
311
314
315
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
7
8
8
9
9
9
9
10
10
10
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
23
23
23
23
23
23
24
26
26
26
27
27
27
28
28
28
28
29
30
30
32
32
32
32
32
33
34
34
34
35
35
36
36
36
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
44
44
44
44
44
44
45
45
45
45
45
46
46
47
47
47
47
47
47
47
48
48
48
49
49
51
51
51
51
52
52
52
53
53
53
54
54
54
54
55
55
56
56
56
56
57
57
58
58
58
58
58
59
59
59
59
59
60
60
60
61
61
62
62
63
63
64
64
65
65
66
66
66
66
66
66
66
66
67
67
67
67
68
68
68
68
69
69
70
70
71
71
72
73
74
74
75
76
76
76
76
77
77
77
78
78
79
79
80
80
80
80
80
82
82
84
84
85
85
85
85
85
85
85
85
86
87
87
87
87
88
89
92
93
96
97
97
98
99
99
99
100
100
100
101
101
102
103
104
104
105
106
106
106
107
108
110
110
111
111
115
116
117
118
119
119
120
120
122
122
123
123
123
124
124
124
124
124
125
127
129
129
129
132
136
137
140
141
141
142
143
144
145
146
148
149
149
149
151
151
152
153
154
157
162
162
166
166
170
170
170
173
174
175
175
176
177
180
180
189
193
193
195
202
202
217
219
222
224
275
279
280
294
295
296
312
315
316
4
4
4
4
5
5
5
5
5
5
5
5
6
6
6
6
6
6
7
7
7
7
8
8
8
8
9
9
9
9
10
10
10
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
23
23
24
24
24
24
25
27
27
27
28
28
28
29
29
29
29
29
29
31
33
33
33
33
33
33
33
34
34
34
34
35
35
35
35
36
36
36
36
36
37
37
37
37
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
42
42
42
43
43
43
43
44
44
44
45
45
45
46
46
46
46
46
46
47
47
47
48
48
48
48
48
48
48
48
48
49
49
49
50
50
50
50
50
50
51
52
52
52
53
53
53
53
54
54
54
54
56
56
57
57
58
58
58
59
59
59
59
59
59
60
60
60
60
61
61
62
63
65
66
66
67
67
67
67
67
67
67
67
67
68
68
68
69
69
69
69
69
70
71
71
72
72
72
73
74
75
75
76
76
77
77
77
77
77
77
78
78
78
78
79
80
80
80
80
81
81
81
81
83
84
85
85
85
86
86
86
86
86
87
88
88
88
88
88
88
90
90
93
94
98
98
99
99
100
100
101
102
104
105
105
106
107
107
107
108
109
111
112
112
116
116
118
119
120
120
121
121
121
123
123
124
124
124
124
125
125
125
125
125
126
130
130
130
133
137
138
139
142
142
143
143
144
145
146
147
149
150
150
150
152
152
153
154
155
158
163
163
167
171
171
171
174
175
176
176
177
178
181
181
190
194
194
196
203
203
220
223
225
276
280
281
295
296
297
313
316
317
4
4
4
4
5
5
5
5
5
6
6
6
7
7
7
7
7
8
8
8
8
9
9
9
9
9
9
9
10
10
10
10
10
10
10
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
21
21
21
21
22
22
22
22
22
24
24
24
24
24
24
25
25
25
25
26
28
28
28
29
29
29
30
30
30
30
32
32
32
33
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
44
44
44
44
45
45
45
45
46
46
47
47
47
48
48
48
48
48
48
48
48
49
49
49
50
50
51
51
51
51
51
53
54
54
54
54
54
54
54
55
57
58
58
59
59
59
59
60
60
60
60
60
61
61
63
64
64
66
66
67
67
67
67
67
68
68
68
68
68
69
69
69
69
70
70
70
70
71
72
73
73
74
75
76
76
77
77
77
78
78
78
78
79
79
79
80
82
82
82
82
84
85
85
86
86
86
87
87
87
87
88
88
88
88
89
89
90
91
91
95
99
99
100
102
103
105
106
107
108
108
108
109
110
110
110
110
112
113
113
117
117
119
119
120
121
121
122
124
124
125
125
125
125
126
126
126
126
126
127
131
131
131
134
138
139
141
143
143
144
146
147
148
148
150
151
151
151
153
153
153
153
154
155
155
155
156
159
164
164
168
172
172
172
175
176
177
177
178
179
182
182
191
195
195
197
204
204
221
224
226
277
281
282
296
297
298
314
317
318
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
6
7
7
8
8
8
9
9
9
9
9
9
9
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
22
22
22
23
23
23
23
24
24
25
25
26
26
26
26
27
29
30
30
30
31
31
31
31
31
31
32
32
32
32
32
32
33
33
33
33
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
45
45
45
45
45
46
46
46
47
47
47
48
48
48
48
48
49
49
49
50
50
50
50
50
50
51
51
52
52
52
52
52
54
54
54
54
54
55
55
56
58
59
59
60
61
61
61
61
61
62
62
64
64
64
65
65
66
67
68
68
68
69
69
69
69
69
69
69
69
69
69
70
70
70
71
71
71
71
74
74
75
76
76
77
77
77
78
78
78
78
78
79
79
79
80
80
80
80
81
83
83
83
83
83
84
85
85
86
86
87
87
87
88
88
88
88
88
89
89
90
90
90
91
92
92
93
95
96
98
98
100
101
103
104
106
107
108
109
109
109
110
111
111
113
114
114
116
119
119
120
120
121
122
122
123
125
125
126
126
126
126
127
127
127
127
127
128
132
132
132
135
139
141
142
144
144
145
147
148
149
149
149
151
151
152
152
152
153
154
154
155
156
156
156
157
160
165
165
169
173
173
173
176
177
177
178
178
179
180
180
183
183
192
196
198
205
205
222
225
227
278
282
283
297
298
299
315
318
319
4
4
4
5
5
5
5
5
5
5
5
5
6
6
7
8
8
8
8
8
9
9
9
9
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
22
22
22
22
22
23
23
23
24
24
24
25
25
25
25
26
26
27
27
27
27
28
28
28
28
29
29
31
31
31
31
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
34
34
34
34
34
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
45
45
45
46
46
46
46
46
46
47
47
48
48
49
49
49
49
49
49
49
50
50
50
50
50
50
51
51
51
51
52
53
53
54
54
55
55
55
56
56
57
58
58
59
59
59
60
60
61
61
62
62
62
63
64
65
65
66
66
66
67
69
69
70
70
70
70
70
70
70
70
70
70
71
71
71
72
72
72
75
75
76
77
77
77
77
77
78
78
78
79
79
79
79
79
79
80
80
80
84
84
84
84
85
85
85
85
85
86
87
87
87
87
88
88
88
88
89
89
89
89
90
90
91
91
92
93
94
94
96
96
96
96
97
98
98
99
99
99
102
104
105
106
107
108
109
110
110
110
111
114
115
115
120
121
121
122
123
123
124
126
126
127
127
127
127
127
128
128
128
128
128
129
131
133
133
133
136
140
142
143
145
145
146
148
149
149
149
149
150
150
151
151
152
152
153
153
153
155
155
156
156
156
157
158
161
166
166
170
174
174
174
177
179
179
180
181
181
184
193
195
195
197
199
206
206
223
226
228
279
283
284
298
299
300
316
319
320
1
4
4
5
5
5
5
5
5
5
6
6
6
6
6
7
7
7
9
9
9
9
9
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
20
20
20
20
21
21
22
22
23
23
23
23
23
23
23
23
24
24
24
24
25
25
25
27
27
28
28
28
28
29
29
29
30
30
31
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
35
35
35
35
35
35
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
45
45
45
46
46
47
47
47
47
47
48
48
48
48
49
49
49
49
50
50
50
50
50
50
50
51
51
51
51
52
52
52
52
53
54
54
54
54
54
56
57
57
58
59
59
60
60
60
61
61
61
61
62
63
63
63
64
66
66
67
67
70
70
71
71
71
71
71
71
71
71
72
72
73
73
76
76
76
77
77
77
78
78
78
79
79
79
79
80
80
80
83
83
85
85
85
85
85
85
85
85
86
86
86
87
87
87
88
88
89
89
89
90
90
90
90
90
90
90
92
92
94
95
97
97
97
98
98
99
100
100
100
100
101
103
105
105
106
107
108
109
110
110
111
111
111
112
115
116
121
123
124
124
125
127
127
128
128
128
128
129
129
129
129
129
130
132
134
134
137
141
142
143
144
146
146
147
149
151
151
152
152
153
153
154
154
154
156
156
157
158
159
162
167
167
171
175
175
175
178
180
180
181
182
182
183
183
185
194
196
198
200
207
207
224
227
229
280
284
285
299
300
301
317
320
321
1
1
1
1
1
1
1
1
5
5
5
5
5
5
5
5
6
7
7
7
7
7
7
8
8
8
9
9
9
9
9
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
21
21
22
22
23
23
24
24
24
25
25
25
25
25
26
26
26
28
28
29
29
29
29
29
29
30
31
31
31
32
32
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
44
44
44
44
45
45
45
45
45
46
46
46
46
46
47
47
48
48
48
48
48
49
49
49
49
49
49
49
49
50
50
50
50
50
51
51
51
52
52
52
52
53
53
53
54
54
54
55
55
55
57
58
58
59
59
59
60
60
61
61
61
62
62
62
62
63
63
64
65
67
67
68
70
71
71
71
72
72
72
72
72
72
73
73
74
74
75
77
77
77
77
77
78
78
79
79
79
79
80
80
80
81
81
84
84
85
85
85
86
86
86
86
86
86
87
88
88
88
88
89
89
90
91
91
91
91
91
91
91
93
94
96
97
98
98
99
99
99
100
100
101
101
101
102
102
102
104
106
107
108
108
109
110
111
111
111
112
112
112
113
116
117
124
125
125
126
128
128
129
129
129
129
130
130
130
130
130
131
133
133
133
135
135
138
142
142
143
144
145
147
147
148
150
152
152
153
153
155
155
155
157
157
158
159
160
163
168
168
172
176
176
176
179
181
181
182
183
183
184
186
195
197
199
201
208
208
225
228
230
281
285
286
300
301
302
318
321
322
1
1
1
1
1
1
1
1
1
1
5
5
5
5
5
6
6
6
7
7
7
8
8
8
9
9
9
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
21
21
21
21
22
22
22
22
22
23
23
23
24
24
24
24
24
25
25
25
25
25
26
26
26
26
26
27
27
27
27
28
29
29
29
29
30
30
30
30
30
30
31
31
32
32
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
45
45
45
46
46
46
46
47
47
47
48
48
48
48
48
49
49
49
49
49
49
50
50
50
50
50
50
50
51
51
51
51
52
52
52
53
53
53
54
54
55
55
55
56
56
56
58
58
59
59
59
59
59
59
60
60
61
61
61
61
63
63
63
63
63
65
66
66
66
67
67
68
68
69
69
71
71
72
73
73
73
73
73
73
74
74
75
75
76
76
76
77
78
78
78
79
79
79
79
80
80
80
80
81
83
85
85
85
86
86
86
86
87
87
87
87
87
87
88
88
88
88
89
89
89
91
92
92
92
92
92
94
97
97
98
98
100
100
100
101
101
101
102
103
103
105
107
107
108
109
109
109
109
110
111
111
112
112
113
113
113
114
115
115
116
116
117
118
119
125
126
126
127
129
129
130
130
130
130
130
131
131
131
131
131
132
134
134
136
136
139
142
143
143
143
144
145
148
148
149
149
149
151
153
153
156
156
156
158
159
160
161
164
169
169
173
177
177
177
180
182
182
183
184
184
185
187
196
198
200
202
209
209
226
229
230
231
282
286
287
301
302
303
319
322
323
1
4
5
5
5
5
5
5
5
5
5
5
5
6
7
7
7
7
7
7
7
7
8
8
8
8
8
8
9
9
9
10
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
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
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
20
21
21
22
22
22
23
23
23
23
23
23
23
24
24
25
25
26
26
26
26
26
27
27
27
27
27
27
27
28
28
28
29
29
29
29
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
33
33
33
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
42
42
42
42
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
44
44
44
44
44
44
44
45
45
45
46
46
46
46
47
47
47
47
47
48
48
49
49
49
49
49
49
49
49
50
50
50
50
50
50
51
51
51
51
51
52
53
53
53
53
53
54
54
54
54
54
54
55
55
55
56
56
57
57
59
59
59
59
60
60
60
60
61
62
62
63
63
63
64
64
64
64
64
66
67
67
67
68
68
69
69
69
69
70
70
70
72
72
72
73
74
74
74
74
74
74
75
75
76
77
77
77
79
79
79
79
80
80
81
81
81
81
83
87
87
88
88
88
88
88
89
89
90
90
90
92
92
93
93
93
93
95
98
99
99
99
100
101
101
101
102
103
103
103
103
103
104
106
108
109
109
109
110
110
110
112
112
113
113
114
114
114
115
116
117
118
119
119
120
126
127
127
128
130
130
130
131
131
131
131
132
132
132
132
132
133
135
135
137
137
140
142
143
144
144
144
145
149
149
150
150
150
151
151
151
152
154
154
157
157
157
159
160
161
162
165
170
170
174
178
178
178
181
183
183
184
185
185
186
188
197
199
201
203
210
210
210
210
227
229
231
232
283
287
288
302
303
304
320
323
324
1
1
1
1
4
4
5
5
5
5
5
5
5
6
6
6
7
7
7
7
7
8
8
8
8
8
8
8
8
8
9
9
9
9
9
10
10
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
19
19
19
19
19
19
19
19
20
20
21
21
21
23
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
26
26
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
30
30
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
46
47
47
47
47
47
48
48
48
48
49
49
49
50
50
50
50
51
51
51
51
52
52
52
53
53
54
54
54
54
54
55
55
55
55
55
55
56
57
58
58
59
60
60
60
60
60
60
60
60
60
61
61
61
61
62
63
63
64
65
65
65
65
65
67
68
69
69
69
70
70
70
71
71
72
73
73
73
73
74
75
75
75
75
75
76
76
76
77
77
77
77
77
77
77
78
79
80
80
80
80
81
81
81
81
82
83
84
87
87
88
88
88
88
89
89
89
89
89
90
90
91
92
93
94
94
94
94
96
99
100
102
102
102
104
104
104
105
107
109
109
109
110
110
111
111
113
113
114
114
115
115
115
116
117
119
120
120
121
127
128
128
129
131
131
132
132
132
132
133
133
133
133
133
134
136
136
138
138
138
141
141
142
144
145
145
145
150
150
151
152
152
152
153
155
155
157
158
158
158
159
160
161
162
163
166
171
171
175
179
179
179
182
184
184
185
186
186
187
189
198
200
202
204
211
211
228
232
233
284
288
289
303
304
305
321
324
325
4
4
4
4
5
5
5
5
5
5
5
5
5
5
6
6
6
6
7
7
7
7
7
7
7
7
7
8
8
8
8
8
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
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
19
19
19
19
20
20
21
21
21
21
22
22
23
24
24
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
27
27
27
27
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
31
31
31
31
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
39
39
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
46
46
46
46
46
46
47
47
48
48
48
48
48
49
49
49
49
50
50
50
50
51
51
51
51
51
52
52
52
53
53
53
53
54
55
55
55
55
55
55
56
56
58
59
59
59
61
61
61
61
61
62
62
62
63
63
64
65
66
66
66
66
67
68
69
70
70
71
71
71
71
72
72
72
73
73
73
74
74
75
76
76
76
76
76
77
77
78
78
78
78
78
78
79
79
79
79
79
80
81
81
81
81
81
81
82
83
84
85
87
87
88
88
89
89
89
90
90
90
90
91
92
94
95
95
95
95
96
97
100
101
103
103
103
103
103
105
105
105
108
110
110
110
111
111
114
114
115
115
116
116
116
117
117
118
120
120
121
121
128
129
129
130
132
132
133
133
133
133
134
134
134
134
134
135
137
137
139
142
142
143
145
146
146
151
151
152
152
153
153
154
156
156
159
159
160
161
162
163
164
167
172
172
176
180
180
180
183
185
185
186
187
187
188
190
199
201
203
205
212
212
229
233
234
285
289
290
304
305
306
322
325
326
4
4
5
5
5
5
5
5
5
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
9
9
9
9
9
9
10
10
10
10
10
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
19
19
19
19
20
20
20
20
21
21
22
22
22
22
22
22
23
23
24
24
24
25
25
25
25
26
26
26
27
27
27
27
27
27
27
27
28
28
28
28
28
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
40
40
41
41
41
41
41
41
41
41
41
41
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
46
46
46
46
46
47
47
47
47
47
48
49
49
49
49
49
50
50
50
50
50
51
51
51
51
51
52
52
52
53
53
53
54
54
54
55
55
55
55
56
56
56
57
59
59
59
59
60
60
60
60
61
61
62
62
62
62
62
62
62
63
63
63
64
65
67
67
67
67
69
70
70
71
71
71
71
71
71
72
72
73
73
73
74
74
75
75
76
76
77
77
77
77
77
77
78
78
79
79
79
79
79
80
80
80
80
81
82
82
83
83
84
85
86
88
88
88
88
89
89
89
90
90
90
91
91
91
91
92
93
95
96
96
96
96
97
97
97
97
98
99
99
99
99
100
100
101
101
104
104
106
109
109
111
111
111
111
111
112
115
115
116
116
116
117
117
117
119
121
121
121
122
129
130
130
131
133
133
134
134
134
134
135
135
135
135
135
136
138
138
140
143
143
144
146
147
152
153
153
153
153
155
157
157
160
160
161
162
163
164
165
168
173
173
177
181
181
181
184
186
186
187
188
188
189
191
200
202
204
206
213
213
230
234
235
286
290
291
305
306
307
323
326
327
4
4
5
5
5
5
5
5
5
5
6
6
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
20
20
20
21
21
21
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
25
25
25
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
28
28
29
29
29
29
29
29
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
41
41
41
42
42
42
43
43
43
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
46
46
46
46
47
47
47
47
48
48
48
49
49
49
50
50
50
50
50
50
51
51
51
51
51
52
52
52
52
52
53
53
53
53
54
54
54
54
54
55
55
55
56
56
56
57
57
57
58
59
59
60
60
61
61
61
62
62
62
63
63
63
63
64
65
67
67
68
68
68
68
70
70
71
71
72
72
72
72
73
73
73
73
74
74
74
75
75
77
77
78
78
78
78
78
79
79
79
79
79
80
81
81
81
81
83
83
84
84
85
85
85
86
86
88
88
88
88
89
89
89
90
90
90
90
91
91
92
92
92
92
94
96
97
97
97
97
98
98
98
99
99
100
100
101
101
101
101
101
101
102
102
103
105
105
107
111
111
112
112
113
116
116
117
117
117
118
118
118
119
120
122
122
123
130
131
131
132
134
134
135
135
135
135
136
136
136
136
136
137
139
139
141
144
144
144
148
151
151
153
154
154
156
156
156
158
158
161
161
162
163
164
165
166
169
174
174
178
182
182
182
185
187
188
189
189
190
192
201
203
205
207
214
214
231
235
236
287
291
292
306
307
308
324
327
328
4
5
5
5
5
5
5
5
5
6
7
7
7
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
22
22
22
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
43
44
44
44
44
45
45
45
45
45
45
45
46
46
46
46
46
46
47
47
47
47
48
48
48
49
49
50
50
50
50
51
51
51
51
51
51
52
52
52
53
53
53
53
53
53
54
54
54
55
55
55
55
55
55
56
56
57
57
58
58
58
59
59
59
60
60
60
61
61
62
62
62
62
63
63
63
64
64
64
65
66
68
68
69
69
69
69
70
71
71
72
72
72
73
73
74
74
75
75
75
75
77
77
77
79
79
79
79
79
79
80
80
80
81
81
81
82
82
83
84
84
85
85
86
86
86
86
86
89
89
90
90
90
90
91
91
92
92
92
92
92
93
93
93
93
95
97
98
98
98
98
98
99
99
100
102
102
102
102
102
103
103
103
103
104
106
108
112
112
112
112
113
113
114
117
117
118
118
119
119
119
119
120
121
123
123
124
131
132
132
133
135
135
136
136
136
136
137
137
137
137
137
137
138
140
140
142
145
145
146
149
152
154
154
155
157
157
157
159
159
162
162
163
164
165
166
167
170
175
175
179
183
183
183
186
190
190
191
193
204
206
208
215
215
232
236
237
288
292
293
307
308
309
325
328
329
4
4
5
5
5
5
5
5
6
7
7
7
8
8
9
9
9
9
9
9
9
9
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
21
21
21
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
26
26
26
26
26
26
27
27
27
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
39
39
39
39
39
40
40
40
40
40
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
43
44
45
45
45
46
46
46
46
46
46
47
47
48
48
48
49
49
49
50
51
52
52
52
52
52
52
52
53
53
54
54
54
54
54
54
55
56
56
56
57
57
57
58
58
59
59
59
60
60
60
60
60
61
62
62
62
62
62
62
63
63
63
63
63
65
65
65
67
67
69
69
69
70
70
70
70
72
72
72
72
73
73
73
73
74
75
75
76
76
77
77
78
78
78
78
78
80
80
80
80
80
80
81
81
81
81
81
82
84
84
85
85
86
86
86
86
86
87
87
87
88
89
89
90
90
90
90
91
91
91
92
92
93
93
94
94
94
96
97
98
98
99
99
99
99
101
101
102
103
103
103
103
104
104
105
107
109
109
109
112
112
113
113
114
114
115
118
118
119
119
120
120
120
120
121
122
124
124
125
132
133
133
134
136
136
137
137
137
137
138
138
138
138
138
139
141
141
142
143
146
146
146
150
153
155
156
157
157
158
158
160
160
162
163
163
164
165
166
167
168
171
176
176
180
184
184
184
187
191
191
192
194
205
207
209
216
216
233
237
238
289
293
294
308
309
310
326
329
330
1
4
5
5
5
5
5
5
6
7
7
8
8
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
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
23
23
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
27
27
27
27
27
27
28
28
28
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
39
40
41
41
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
44
44
45
45
45
45
45
45
46
46
46
47
47
47
47
47
47
47
47
48
48
48
49
49
49
50
50
50
50
51
51
52
52
52
53
53
53
53
53
54
54
55
55
55
55
56
56
56
57
58
58
58
59
59
59
59
59
60
60
60
60
60
60
61
61
62
62
63
63
63
63
63
63
63
64
64
64
66
66
66
67
68
68
71
71
71
71
73
73
73
73
73
73
74
74
74
75
75
76
76
77
77
77
78
78
78
78
78
79
79
79
81
81
81
81
81
82
82
82
83
84
86
86
86
87
87
87
87
87
87
88
88
89
89
91
91
91
92
93
93
93
95
95
97
98
99
99
100
100
100
100
101
101
102
102
103
105
105
106
108
109
109
110
110
110
112
112
113
114
114
115
115
116
119
119
120
120
120
121
121
121
122
123
125
125
126
133
134
134
135
137
137
138
138
138
138
139
139
139
139
140
142
142
143
144
147
147
151
154
156
157
159
161
161
163
164
164
165
166
167
168
169
172
177
177
181
185
185
185
188
192
192
193
195
204
206
208
210
217
217
234
238
239
290
294
295
309
310
311
327
330
331
1
1
1
5
5
5
5
5
5
5
6
7
7
7
8
8
8
9
9
9
9
9
9
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
20
20
21
21
21
21
21
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
28
28
28
28
28
28
29
29
29
29
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
40
40
41
42
42
42
42
42
42
43
43
43
43
43
43
44
44
44
44
44
44
44
44
45
45
46
46
46
46
46
46
47
47
47
47
47
48
48
48
48
48
49
49
50
50
51
52
52
53
53
53
53
54
54
54
54
54
54
55
55
56
56
57
58
59
59
59
59
60
60
60
60
60
60
61
61
61
61
61
61
61
62
62
63
63
64
64
64
65
67
67
67
68
68
69
69
69
70
70
71
72
72
73
75
75
75
75
76
76
77
77
78
78
79
79
79
79
80
80
80
82
82
82
82
82
82
83
83
83
84
84
85
85
86
86
87
87
88
88
88
88
89
89
90
92
92
92
93
93
93
96
96
98
99
100
100
101
101
101
101
101
102
103
104
106
106
109
111
111
111
112
112
113
114
116
116
117
120
120
120
121
121
121
122
122
122
123
124
126
126
127
134
135
135
136
138
139
139
139
139
140
140
140
140
141
143
143
144
145
148
148
152
155
157
158
160
162
162
164
165
165
166
167
168
169
170
173
178
178
182
186
186
186
187
193
193
194
196
201
205
207
209
211
218
218
235
239
240
291
295
296
310
311
312
328
331
332
1
1
1
1
4
4
4
5
5
5
5
5
7
7
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
19
19
19
19
19
20
20
20
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
29
29
29
29
29
29
30
30
30
30
30
30
30
30
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
38
38
38
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
41
41
41
42
42
42
42
42
43
43
43
43
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
46
46
47
47
47
47
48
48
49
49
49
49
49
49
50
50
51
51
52
53
53
54
54
54
54
54
54
55
55
55
55
55
55
56
57
58
59
60
60
60
60
61
61
61
61
61
61
61
62
62
62
62
62
62
63
63
63
64
65
65
66
68
68
68
70
70
70
70
71
71
72
73
73
73
73
75
76
76
76
76
77
77
77
78
78
79
79
80
80
80
80
80
80
81
82
83
83
83
83
83
84
84
84
84
84
85
86
86
87
87
87
87
88
88
89
89
90
90
91
91
97
97
99
100
101
102
102
102
102
103
103
104
106
106
107
107
107
110
111
112
112
112
112
112
113
113
114
117
117
118
120
121
121
121
122
122
122
123
123
123
125
127
127
128
135
136
136
137
139
140
140
140
140
141
141
141
141
142
144
144
145
146
149
149
153
156
158
159
161
163
163
165
166
166
167
168
169
170
171
174
179
179
183
187
187
187
188
192
194
194
195
197
206
208
210
212
219
219
236
240
241
292
296
297
311
312
313
329
332
333
1
1
1
1
1
1
2
5
5
5
5
5
5
5
5
5
6
7
7
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
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
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
19
19
20
20
20
20
21
21
22
22
22
22
22
22
22
23
23
23
23
23
23
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
39
39
39
39
39
39
40
40
40
40
40
40
40
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
43
43
43
44
44
44
44
44
45
45
45
45
45
45
46
46
46
46
46
46
46
47
47
49
49
50
50
50
50
50
50
51
51
52
52
52
53
54
54
54
55
56
56
56
56
56
56
57
58
59
60
60
61
61
61
61
62
62
62
63
63
63
63
63
63
63
63
63
63
64
64
66
66
67
68
69
69
69
69
69
71
71
71
71
72
72
72
72
72
73
73
73
74
74
76
77
77
77
77
78
79
80
80
80
80
81
81
81
81
81
81
82
84
84
84
84
84
85
85
85
85
85
86
86
86
86
87
88
88
88
89
90
90
91
91
98
98
100
101
101
102
103
103
103
103
103
106
107
107
108
108
108
111
112
112
113
113
114
114
118
118
119
120
121
122
122
122
123
123
123
124
124
124
126
128
128
129
136
137
137
138
140
141
141
141
141
142
142
142
142
143
145
145
146
147
150
150
152
154
157
159
160
162
164
164
166
167
167
168
169
169
170
171
172
172
175
180
184
188
188
188
193
195
195
196
198
207
209
211
213
220
220
237
241
293
297
298
312
313
314
330
333
334
1
1
2
2
3
4
4
4
4
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
7
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
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
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
19
19
20
20
20
21
21
21
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
39
39
39
39
39
39
39
39
40
41
41
41
41
41
41
42
42
42
42
42
42
43
43
43
43
43
44
44
45
45
45
45
45
45
46
46
46
46
46
46
47
47
47
47
47
47
47
47
48
50
50
51
51
51
51
51
52
52
53
53
54
54
54
54
55
55
55
55
55
55
56
56
56
56
56
57
57
57
57
57
58
59
59
59
60
61
62
62
62
63
63
63
63
63
64
64
64
64
64
64
64
65
65
67
67
68
68
68
68
68
68
69
70
70
70
70
70
70
71
72
72
72
72
72
73
73
73
74
74
74
75
75
75
75
76
76
77
77
78
78
78
80
80
81
81
81
81
81
82
82
82
82
82
82
82
83
85
85
85
85
86
86
86
86
86
87
87
87
87
87
87
88
89
89
90
91
91
92
92
93
97
99
99
101
102
102
102
103
104
104
104
104
107
108
108
108
108
109
112
112
112
114
114
115
115
119
119
120
120
121
122
123
123
123
124
124
125
125
125
127
129
129
130
137
138
138
138
139
141
142
142
142
142
143
143
143
143
144
146
146
147
148
151
151
153
153
153
155
158
160
161
163
165
165
167
168
168
169
171
172
173
173
176
179
179
181
185
189
189
194
196
196
197
199
208
210
212
214
221
221
238
294
298
299
313
314
315
331
334
335
1
1
1
2
3
3
4
4
4
4
4
5
5
5
5
5
5
5
5
5
6
6
6
6
6
7
7
7
7
7
7
7
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
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
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
18
19
19
19
19
20
20
21
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
33
33
33
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
39
39
39
39
39
39
39
40
40
40
40
41
41
41
42
42
42
42
42
42
43
43
43
43
43
43
43
44
44
44
44
44
45
45
45
45
46
46
46
46
47
47
47
47
47
48
48
48
48
48
48
48
49
49
49
51
51
52
52
52
52
52
52
52
52
53
53
54
54
54
54
54
54
55
55
55
55
56
56
56
56
56
56
57
57
57
58
58
58
59
60
62
63
63
63
64
64
64
64
64
65
65
65
65
66
68
68
69
69
69
70
71
71
71
71
73
73
73
74
74
76
76
76
76
76
77
77
78
78
79
79
79
79
80
81
81
81
82
82
82
82
82
82
82
82
82
83
83
83
84
86
86
86
87
87
87
87
87
88
88
88
88
89
90
90
91
91
91
91
92
92
93
93
93
93
93
98
98
98
99
100
100
102
103
103
103
103
103
104
105
105
105
105
106
108
110
112
113
113
113
115
115
115
120
120
120
121
122
123
124
124
125
125
126
126
126
128
130
130
131
137
138
139
139
140
142
143
143
143
143
144
144
144
144
145
147
147
148
149
152
152
153
154
154
159
161
162
164
166
166
168
169
169
170
172
173
174
174
177
180
182
186
188
188
190
190
195
197
197
198
200
209
211
213
215
222
222
239
295
299
300
314
315
316
332
335
336
1
3
3
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
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
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
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
17
17
17
17
17
17
18
18
18
19
19
19
19
20
20
20
20
20
20
21
21
22
22
22
22
22
22
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
34
34
34
34
34
34
35
35
35
35
35
35
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
39
39
39
39
39
39
40
40
40
40
40
40
41
41
41
41
41
42
42
42
42
43
43
43
43
43
43
43
43
43
44
44
44
44
44
45
45
45
45
45
45
46
46
47
47
47
47
47
47
48
48
48
48
48
48
49
49
49
49
49
49
50
50
50
52
52
53
53
53
53
53
53
53
53
53
54
54
55
55
55
56
56
56
56
56
56
57
57
57
57
57
58
58
58
59
60
61
63
64
64
64
64
65
65
65
65
66
66
67
68
69
69
69
70
70
70
71
72
72
73
74
74
74
75
76
77
77
77
78
78
78
79
80
80
80
81
81
82
82
82
82
83
83
83
84
85
85
85
86
86
87
87
87
87
88
88
88
88
88
89
89
89
90
91
91
92
92
92
93
93
93
93
94
94
94
99
99
100
100
101
101
103
103
104
104
104
105
106
106
106
106
109
111
114
114
114
115
116
121
121
122
123
124
125
125
126
126
127
127
127
129
131
131
132
139
140
140
141
142
143
144
144
144
144
145
145
145
145
146
146
148
148
149
150
153
153
154
154
160
162
163
165
167
167
169
170
170
171
173
174
175
175
178
181
183
187
189
191
191
196
198
198
199
199
201
201
210
212
214
216
223
223
296
300
301
315
316
317
333
336
337
1
1
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
19
19
19
19
19
19
19
19
19
20
20
20
20
21
21
22
22
23
23
23
23
23
23
23
23
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
35
35
35
35
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
39
39
39
39
39
39
39
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
43
43
43
43
44
44
44
44
44
45
45
45
45
45
45
46
46
46
46
46
46
47
47
48
48
48
48
49
49
49
49
49
49
49
50
50
50
50
50
51
51
52
52
52
54
54
54
54
54
54
54
54
54
54
55
55
55
55
56
56
56
56
56
56
57
57
57
57
57
58
58
58
58
59
60
60
60
61
62
64
65
65
65
66
66
66
67
67
68
68
70
70
70
70
71
72
75
75
76
76
77
77
77
78
80
80
81
81
83
84
84
84
85
86
87
88
88
88
88
89
89
89
89
90
90
90
90
90
91
92
92
93
93
94
94
95
98
99
99
99
99
100
101
101
102
102
103
104
104
105
106
106
106
107
107
107
110
112
112
115
117
121
122
122
123
124
126
126
127
127
128
128
128
130
132
132
133
138
140
141
141
142
143
144
145
145
145
145
146
146
146
146
146
147
147
149
149
150
151
154
154
161
163
164
166
168
168
170
171
171
172
174
175
176
176
179
182
184
188
190
192
192
197
199
199
202
202
211
213
215
217
224
224
297
301
302
316
317
318
334
336
338
2
2
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
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
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
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
20
20
20
20
21
21
21
21
21
21
21
21
21
22
22
22
22
22
23
23
23
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
27
27
27
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
35
35
36
36
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
39
39
39
39
40
40
40
40
40
40
40
41
41
41
42
42
42
42
42
42
42
43
43
43
43
43
44
44
44
44
45
45
45
45
46
46
46
46
46
46
46
47
47
47
47
47
47
48
48
48
49
49
49
49
50
50
50
51
51
51
51
51
52
53
55
55
55
55
55
55
56
56
56
56
57
57
57
57
58
58
58
58
58
59
59
59
60
61
61
61
61
62
63
63
63
64
65
66
66
66
67
67
67
68
68
68
69
69
71
71
72
72
76
76
76
76
77
77
77
78
78
79
80
80
81
82
82
83
84
84
85
85
87
87
88
89
89
89
90
90
90
90
91
91
91
91
92
93
93
93
94
94
94
94
96
100
100
100
101
102
102
102
102
102
103
103
103
104
106
106
107
107
107
108
108
108
108
111
112
113
113
113
116
116
118
122
123
123
124
127
127
128
128
129
129
129
131
131
133
133
134
134
141
142
142
143
144
144
145
146
146
146
146
147
147
147
147
147
148
150
151
152
154
155
155
155
162
164
165
167
169
169
171
172
172
173
175
176
177
177
180
183
185
189
191
193
193
198
200
200
203
203
212
214
214
216
216
218
225
225
298
302
303
317
318
319
335
336
337
339
2
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
7
7
7
7
7
7
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
18
18
19
19
19
19
19
19
19
20
21
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
36
36
36
36
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
42
42
42
43
43
43
43
43
43
44
44
44
44
44
45
45
45
45
45
46
46
47
47
47
47
47
47
47
48
48
48
48
48
48
48
49
49
49
50
50
51
51
51
52
52
52
52
52
52
53
53
54
54
54
54
54
54
54
55
56
56
56
56
56
56
56
56
56
56
57
57
57
57
57
58
58
58
59
59
59
60
60
61
62
62
63
63
63
64
64
64
65
65
66
67
67
67
68
68
68
69
69
69
70
70
72
72
72
72
73
77
77
77
77
78
78
80
80
80
81
81
82
82
82
83
83
83
85
86
86
87
88
88
90
90
90
90
90
91
91
91
91
92
92
93
94
94
94
95
97
99
99
101
101
102
102
103
103
104
104
104
104
106
106
106
107
107
108
108
108
108
108
109
109
109
112
112
113
114
117
117
119
122
124
124
124
125
128
128
129
129
130
130
130
134
134
135
135
142
143
143
144
145
145
146
146
147
147
147
147
147
148
148
148
148
149
149
151
151
152
153
155
156
156
156
160
163
165
166
168
170
170
172
173
173
174
176
177
178
178
181
184
186
190
192
194
194
199
201
201
204
204
213
217
217
219
226
226
299
303
304
318
319
320
336
338
340
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
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
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
22
22
23
23
23
23
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
37
37
38
38
39
39
39
39
39
39
39
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
43
43
43
43
44
44
44
44
44
44
45
45
45
45
45
45
45
46
46
47
47
48
48
48
48
48
49
49
49
49
50
50
50
51
51
52
52
52
53
53
53
53
53
55
55
55
55
55
56
56
56
57
57
57
57
57
58
58
58
58
59
59
60
60
61
61
62
63
63
63
64
64
64
64
64
64
65
65
65
66
67
68
68
68
68
69
69
69
70
70
70
71
71
72
73
73
74
76
77
78
78
78
79
79
81
81
81
82
82
82
82
82
83
83
84
84
86
87
87
87
89
91
91
91
91
91
91
92
92
92
92
92
93
94
95
95
95
96
98
100
100
102
102
103
104
104
104
105
105
106
107
107
108
108
109
110
110
110
112
113
113
113
114
115
115
115
118
118
120
125
125
126
129
129
130
130
131
131
135
135
136
136
143
144
144
145
145
146
147
148
148
148
148
149
149
149
149
150
152
152
153
154
157
157
157
157
161
164
166
167
169
171
171
173
174
174
175
177
178
179
179
182
185
187
191
193
195
195
200
202
202
205
205
214
218
218
220
227
227
300
304
305
319
320
321
337
339
341
1
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
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
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
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
16
16
16
16
16
16
16
17
17
17
17
17
17
18
18
18
19
19
19
19
19
19
19
20
20
20
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
25
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
39
39
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
44
44
44
45
45
45
45
45
45
45
45
46
46
46
48
48
49
49
49
49
50
50
50
50
51
51
52
52
52
53
53
53
53
54
54
54
54
54
54
54
55
56
56
56
56
56
57
57
57
57
58
58
58
58
58
58
59
59
59
59
60
61
61
62
62
63
64
64
64
64
64
64
65
65
65
65
65
66
66
67
68
69
69
69
69
70
70
70
71
71
71
71
72
72
72
74
74
74
75
76
77
77
79
79
79
79
80
81
81
81
82
82
82
83
83
84
84
85
85
87
88
88
88
88
88
88
90
91
91
91
92
92
92
92
92
93
93
93
93
94
94
95
96
97
99
99
101
102
103
104
106
106
107
107
108
108
108
108
109
109
110
111
111
111
113
114
115
115
116
116
119
119
121
124
126
126
127
130
130
130
130
131
131
132
132
136
136
137
137
144
145
145
146
147
147
147
149
149
149
149
150
150
150
150
151
153
153
154
155
155
158
158
158
158
162
165
167
168
170
172
172
174
175
175
176
178
179
180
180
183
186
188
192
194
196
196
201
203
203
203
203
206
206
215
219
219
221
228
228
301
305
306
320
321
322
338
340
342
1
1
1
4
4
5
5
5
5
6
6
6
6
6
7
7
7
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
17
17
17
17
17
18
19
19
20
20
20
20
20
20
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
40
41
41
41
41
41
41
41
42
42
42
42
42
42
42
43
43
43
43
43
44
44
44
44
44
44
45
45
45
45
45
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
48
48
48
48
48
48
49
50
50
50
50
51
51
51
52
52
52
52
53
53
53
53
53
53
54
54
54
54
54
54
55
55
55
55
55
55
55
56
56
56
56
57
57
58
58
58
59
59
59
59
61
62
62
62
63
63
64
64
64
64
65
65
65
65
65
66
66
67
67
68
68
69
70
70
70
70
71
71
71
72
72
72
72
72
73
73
73
73
75
75
75
76
76
77
77
77
77
78
80
80
81
81
82
82
82
82
82
82
82
83
83
83
84
84
85
85
86
86
88
89
89
89
89
90
91
91
92
92
92
92
92
93
93
93
93
93
94
94
94
94
95
96
97
98
99
99
100
100
104
107
107
109
109
109
110
110
111
112
112
112
112
114
115
116
120
120
122
127
127
128
131
131
132
132
133
133
137
137
138
138
145
146
146
147
147
148
148
150
150
150
150
151
151
151
152
154
154
155
156
158
158
159
159
159
163
166
168
169
171
173
173
175
176
177
179
180
181
181
187
189
193
195
197
197
202
204
204
207
207
216
220
220
222
229
229
302
306
307
321
322
323
339
341
343
1
1
1
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
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
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
16
16
17
17
17
17
17
17
17
18
18
18
19
19
20
20
21
21
21
22
22
22
22
22
22
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
41
41
41
41
42
42
42
42
42
43
43
43
43
43
43
43
43
43
44
44
44
44
45
45
45
46
46
46
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
48
49
49
49
50
51
51
51
51
51
52
52
52
53
54
54
54
55
55
55
55
56
56
56
56
56
56
56
56
56
57
57
58
58
58
58
59
59
59
59
59
60
60
60
60
62
63
63
64
64
64
65
65
65
65
66
66
66
66
67
67
68
69
69
69
70
70
71
71
71
71
71
72
72
72
72
73
73
73
73
73
74
74
74
74
74
76
76
76
77
77
77
78
78
79
79
81
81
81
81
82
82
83
83
83
83
84
84
84
87
87
87
89
89
90
90
90
90
92
92
93
93
93
94
94
94
94
94
94
94
95
95
95
97
98
98
99
99
100
101
101
103
107
108
108
108
108
108
110
110
110
111
111
112
113
113
113
113
113
115
115
116
116
121
121
123
128
128
129
132
132
133
133
134
134
138
138
139
139
146
147
147
148
149
149
151
151
151
151
152
152
152
153
155
155
156
157
158
158
159
160
160
160
164
167
167
169
169
170
172
174
174
175
175
176
177
178
181
182
182
188
190
194
196
198
198
203
205
205
208
208
217
221
221
223
230
230
303
307
308
322
323
324
340
342
344
1
1
1
1
1
1
1
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
16
16
16
16
16
17
17
17
17
18
18
18
18
19
20
20
20
20
20
20
21
21
21
21
21
21
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
36
36
37
37
37
37
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
41
41
41
42
43
43
43
43
43
44
44
44
44
45
45
45
46
46
46
47
47
47
48
48
48
48
48
48
48
49
49
49
49
49
49
49
50
50
50
50
50
51
52
52
52
52
52
53
53
54
54
55
55
56
56
56
56
56
57
57
57
57
57
57
57
57
58
58
59
59
59
59
60
60
60
60
60
60
61
61
61
61
63
64
64
64
64
65
65
66
66
66
67
67
68
69
69
70
71
71
71
71
72
72
72
72
72
73
73
73
74
74
74
74
74
74
74
75
75
75
75
77
77
77
77
77
78
78
79
80
80
81
81
82
82
82
82
82
82
82
83
83
83
83
83
83
84
84
85
85
85
85
87
88
88
88
89
90
90
90
91
91
91
91
92
92
93
94
94
94
94
95
95
95
95
95
96
96
98
99
99
100
101
102
102
104
104
107
107
107
108
109
109
109
109
109
111
112
112
113
113
114
114
114
115
116
116
117
122
122
124
129
129
130
133
133
134
134
135
135
139
139
140
140
147
148
148
149
150
150
150
150
152
152
152
152
153
153
153
153
154
156
156
157
158
159
160
161
161
165
170
170
171
173
175
175
176
177
178
179
183
183
183
189
191
197
199
199
204
206
206
209
209
218
222
222
224
231
231
304
308
309
323
323
325
341
343
345
1
1
1
1
1
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
8
8
8
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
17
17
17
18
18
18
18
18
19
19
19
19
19
20
20
20
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
37
37
37
37
38
38
38
38
38
38
39
39
39
39
39
39
39
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
42
42
43
44
44
44
44
44
44
45
45
45
45
45
46
46
47
47
47
47
47
48
48
49
49
49
49
49
49
49
49
50
50
50
50
51
51
51
52
52
53
53
53
53
53
54
54
55
55
55
55
56
56
56
57
57
57
57
57
57
58
58
58
59
59
60
60
61
61
61
61
61
61
62
62
62
64
65
65
65
66
66
67
67
68
69
69
70
71
71
72
72
73
73
73
73
73
74
74
75
75
75
75
75
75
76
76
76
76
77
78
78
78
79
79
80
81
81
81
81
83
83
83
83
83
83
83
84
84
84
84
85
86
86
87
89
89
91
91
91
92
93
94
94
95
95
95
96
96
96
97
97
99
99
100
100
101
102
102
102
103
104
104
109
110
110
110
110
110
112
113
113
113
114
115
115
115
115
116
117
117
118
123
123
125
130
130
131
131
134
134
135
135
136
136
140
140
141
141
148
149
149
150
151
151
151
153
153
153
153
153
153
154
154
154
155
157
157
158
158
158
159
160
162
162
166
171
171
172
174
176
176
177
178
179
180
184
184
184
188
190
192
198
200
200
205
207
207
210
210
219
223
223
225
232
232
305
309
310
323
324
324
326
342
344
346
1
1
1
1
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
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
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
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
18
18
18
18
19
19
20
20
20
20
20
20
20
21
21
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
43
43
44
45
45
45
45
46
46
46
46
46
47
47
48
48
48
48
48
48
49
49
49
49
50
50
50
50
50
50
50
50
51
51
51
51
52
52
52
52
53
53
54
54
54
54
54
55
55
55
56
56
56
56
57
57
57
58
58
59
59
59
59
60
60
61
61
62
62
62
63
63
63
63
64
64
64
64
64
65
65
65
66
66
67
69
69
69
70
71
72
72
73
73
73
74
74
74
74
74
75
75
75
75
75
76
76
76
76
76
77
77
77
77
77
77
79
80
80
80
81
82
83
83
84
84
84
84
84
84
84
84
84
85
85
85
85
85
85
85
85
87
87
88
90
90
90
92
92
92
92
92
93
93
94
94
94
94
95
95
95
95
95
95
95
95
96
96
97
97
97
98
98
99
99
100
100
101
102
102
102
102
102
103
103
103
104
105
105
105
105
108
110
111
111
111
111
113
113
113
113
114
114
115
116
116
116
116
117
119
124
124
124
126
130
131
131
132
132
135
135
136
136
137
137
141
141
142
142
149
150
150
151
152
152
152
152
154
154
154
154
155
155
155
156
158
158
159
159
160
163
163
167
172
172
173
175
177
177
178
179
180
181
185
185
189
191
193
197
199
201
201
206
208
208
211
211
220
224
224
226
233
233
306
310
311
325
325
327
343
345
347
1
1
4
4
4
5
5
5
5
5
5
5
5
6
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
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
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
18
18
18
18
18
19
19
19
19
19
20
20
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
35
35
35
35
35
35
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
42
42
42
42
42
43
43
43
43
43
43
43
43
43
44
45
45
46
46
46
47
47
47
47
47
47
48
48
48
49
49
49
49
50
50
51
51
51
52
52
52
52
52
52
53
53
53
54
54
54
55
55
55
56
56
56
56
57
57
57
57
58
58
58
59
59
59
59
60
60
60
60
61
61
61
62
62
63
63
63
64
64
64
64
64
65
65
65
65
65
65
66
66
66
67
67
68
70
70
70
71
71
71
71
72
73
73
73
74
75
75
75
75
76
76
76
77
77
77
78
78
78
78
78
78
79
79
79
80
81
81
81
82
82
83
84
84
84
85
85
85
85
85
85
85
85
85
85
86
86
86
86
88
90
91
91
91
93
93
93
94
95
95
95
96
96
96
97
97
98
98
98
99
99
100
101
101
102
103
103
103
103
104
104
104
105
105
105
106
106
109
109
112
114
114
114
114
114
115
115
115
115
115
116
116
116
117
117
117
117
120
122
124
125
125
127
132
132
133
133
136
136
137
137
138
138
142
142
143
143
147
150
151
151
152
153
153
153
153
154
154
154
155
155
155
156
156
156
157
158
159
159
160
160
161
164
164
168
173
173
174
176
178
178
179
180
181
186
186
190
192
194
194
198
200
202
202
207
209
209
212
212
221
225
225
227
234
234
307
311
312
326
326
328
344
346
348
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
7
8
8
8
8
8
8
8
8
8
8
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
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
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
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
19
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
22
22
22
22
22
22
22
23
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
34
34
34
34
34
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
43
43
43
44
44
44
44
44
45
46
46
47
47
48
48
48
49
49
49
49
50
50
50
50
50
51
51
51
52
52
52
52
52
52
53
53
53
53
54
54
54
55
56
56
56
57
57
57
57
58
58
58
59
59
59
59
59
60
60
60
60
60
61
61
61
62
62
62
63
63
64
64
64
65
65
65
66
66
66
66
67
67
67
68
69
71
72
72
72
72
72
73
74
74
75
76
76
76
76
77
77
77
78
78
78
78
79
79
79
80
80
80
80
81
81
82
83
83
84
85
85
86
86
86
86
86
87
87
87
87
89
89
89
89
91
91
92
92
92
92
94
95
95
95
96
97
97
97
98
99
99
99
100
100
100
101
102
103
104
104
104
104
105
105
105
105
106
106
107
107
113
115
116
116
116
116
116
116
117
117
117
118
118
118
121
126
126
128
133
133
134
134
134
137
137
138
138
139
139
143
143
144
144
145
147
148
151
152
152
153
154
154
154
154
155
155
155
156
156
156
157
157
157
158
158
159
160
160
161
162
165
165
169
174
174
175
177
179
179
180
181
182
187
187
191
193
195
199
201
203
203
208
210
210
213
213
222
226
226
228
235
235
308
312
313
327
327
329
347
349
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
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
16
16
16
16
16
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
39
39
39
39
39
39
40
40
40
40
40
40
41
41
41
41
41
41
41
42
42
42
42
42
43
43
43
43
43
43
44
45
45
45
45
45
46
46
47
47
47
48
48
49
49
49
50
50
51
51
51
51
51
51
53
53
53
53
53
53
54
54
54
54
55
55
56
56
56
57
57
57
57
57
58
58
60
60
60
60
60
61
61
61
61
61
61
62
62
62
62
63
63
63
64
64
65
65
66
66
66
66
66
67
67
68
68
68
68
70
72
73
73
73
73
73
74
74
74
75
75
76
77
77
77
77
78
78
79
79
80
80
80
81
81
81
82
83
83
83
84
84
84
85
85
86
87
87
87
88
88
88
90
90
93
93
93
93
94
95
96
96
97
98
99
100
100
100
101
101
101
102
104
105
105
105
105
106
106
107
107
111
111
114
115
116
117
117
117
117
117
118
119
119
119
122
127
127
129
134
134
135
135
138
138
139
139
139
140
140
144
145
145
146
148
153
153
154
155
155
155
155
155
156
156
157
157
157
158
158
158
159
160
161
161
162
163
166
166
170
175
175
176
178
180
180
181
182
183
188
188
192
194
196
200
202
204
204
209
211
211
214
214
223
227
227
229
236
236
309
313
314
328
328
330
348
350
1
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
17
17
17
17
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
34
34
34
34
34
34
35
35
35
35
35
35
36
36
36
36
36
36
37
37
38
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
43
43
44
44
44
44
44
44
44
44
45
45
45
46
46
46
46
46
46
46
47
47
47
48
49
49
49
49
49
49
50
50
50
50
50
50
51
51
52
52
52
52
52
52
54
54
54
54
55
55
55
55
56
56
57
57
57
57
58
58
58
58
58
59
59
59
59
61
61
61
61
61
61
61
62
62
62
62
62
63
63
63
64
64
64
66
66
66
66
66
67
67
68
68
69
69
69
71
71
73
73
73
74
74
74
74
75
75
75
76
76
77
77
77
78
78
78
79
80
81
81
81
81
82
82
82
82
83
83
83
84
84
84
85
85
86
86
88
88
89
90
91
92
94
94
94
94
95
95
95
95
95
95
96
97
97
98
99
99
99
100
101
101
101
101
101
102
102
102
103
104
105
105
105
105
105
106
106
106
106
107
107
108
111
115
116
117
117
117
118
118
119
120
120
120
123
128
128
130
135
135
136
139
139
139
140
140
140
140
141
141
143
143
145
146
146
146
154
154
155
155
155
156
156
156
156
157
157
158
158
158
159
159
159
160
161
162
162
163
164
167
167
171
176
176
177
179
181
182
183
184
189
189
193
195
195
197
197
201
203
205
205
210
212
212
215
215
224
228
228
230
237
237
310
314
315
329
329
331
343
349
351
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
33
33
33
33
33
33
34
34
34
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
37
37
37
37
37
37
37
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
41
41
41
41
41
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
44
44
44
44
45
45
45
45
45
45
45
45
46
46
46
46
47
47
47
47
48
48
48
48
49
49
49
50
50
50
50
50
51
51
51
51
51
51
52
52
52
53
53
53
54
54
54
55
55
55
56
56
56
56
56
56
57
57
57
58
58
58
58
59
59
59
59
59
60
60
60
60
61
62
62
62
62
63
63
63
63
63
64
64
65
67
67
67
67
67
67
68
68
68
69
70
70
70
72
72
72
73
74
74
75
75
75
75
76
76
76
77
77
78
78
78
78
78
78
79
79
79
79
79
80
81
81
81
82
82
82
83
83
83
83
83
83
84
84
84
85
85
86
86
89
89
90
90
91
91
92
92
92
93
95
95
95
95
96
96
96
97
98
99
100
100
101
102
102
102
102
103
103
103
104
105
105
105
106
106
106
106
107
107
107
107
108
109
109
116
117
117
118
119
119
120
121
121
121
124
129
129
131
136
136
137
140
141
141
141
141
142
142
144
146
147
147
148
151
155
155
156
156
157
157
157
157
158
158
159
159
159
160
160
160
161
163
163
164
165
168
168
172
177
177
178
180
180
182
183
184
185
190
190
194
198
198
202
204
206
206
211
213
213
216
216
225
229
229
231
238
238
311
315
316
330
330
332
344
348
350
352
1
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
38
38
38
39
39
40
40
40
40
40
40
40
40
41
41
41
41
41
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
44
44
44
44
44
44
45
45
45
45
46
46
46
46
46
46
46
46
47
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
51
51
51
51
51
52
52
52
52
52
52
53
54
54
54
54
54
55
55
56
56
56
56
56
56
57
57
57
57
57
57
57
57
58
58
58
58
58
58
59
60
60
60
60
60
60
60
60
61
61
61
62
63
63
63
64
64
64
65
65
66
66
67
68
68
68
68
68
68
69
69
70
71
71
71
73
74
75
75
75
76
76
77
77
77
77
78
79
79
79
79
80
80
80
80
81
82
82
83
83
83
83
83
83
83
83
84
84
84
84
84
84
85
85
85
85
86
86
88
90
90
91
91
91
92
93
93
93
93
94
94
95
96
96
96
97
99
99
100
101
102
103
103
103
103
104
104
104
105
107
107
108
108
108
108
110
110
117
118
119
120
120
121
122
122
122
125
130
130
132
137
137
138
141
142
142
142
142
143
143
145
147
148
148
148
152
155
155
155
156
156
157
157
158
158
158
158
159
159
160
160
160
161
161
161
162
164
164
165
166
169
169
173
179
181
183
184
185
186
191
191
195
199
199
203
205
207
207
212
214
214
217
217
226
230
230
232
239
239
312
316
317
331
331
333
349
351
353
1
1
2
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
16
16
16
16
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
38
38
38
39
39
40
40
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
43
43
43
43
43
43
43
44
44
44
44
44
44
45
45
45
45
45
46
47
47
47
47
47
47
47
47
47
48
48
48
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
52
52
52
52
52
53
53
53
54
55
55
55
55
56
56
57
57
58
58
58
58
58
58
58
58
60
60
60
61
61
61
61
61
61
61
62
62
62
63
63
64
64
65
65
65
65
66
66
67
67
69
69
69
69
69
69
70
70
72
72
72
74
74
74
75
75
76
76
77
77
77
77
78
78
78
78
78
79
79
79
79
79
80
80
80
81
81
81
81
82
82
83
83
84
84
84
84
84
84
84
85
85
85
85
86
86
86
86
86
86
87
87
88
91
91
92
93
93
94
94
94
95
96
97
97
97
98
100
100
101
101
102
103
103
104
104
104
104
104
105
105
105
106
108
109
109
111
111
118
119
120
121
121
122
123
123
123
126
131
131
133
138
138
139
142
143
143
143
143
144
144
146
148
149
149
156
156
156
157
157
158
159
159
159
160
160
161
161
161
162
162
162
163
165
165
166
167
170
170
174
180
182
184
185
186
187
192
192
196
200
200
204
206
208
208
213
215
215
218
218
227
231
231
233
240
240
313
317
318
332
332
334
350
352
354
1
1
1
1
1
1
1
2
3
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
7
7
7
7
7
7
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
39
39
40
40
40
41
41
41
42
42
42
42
42
42
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
45
45
45
45
45
46
46
46
46
46
46
47
48
48
48
48
48
48
48
48
48
48
48
49
49
50
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
52
53
53
53
53
53
54
54
55
56
56
56
56
57
57
58
58
58
59
59
59
59
59
59
60
60
60
61
61
61
61
61
61
62
62
62
62
62
62
62
63
63
63
63
64
64
65
65
66
66
66
66
67
67
67
68
68
70
70
70
70
71
71
72
73
73
73
74
74
75
75
77
77
77
77
78
78
78
78
79
79
80
80
80
80
81
81
81
82
82
82
82
82
82
82
83
83
84
84
84
85
85
85
85
85
85
86
86
86
87
87
87
87
87
88
88
92
92
92
93
94
94
94
94
95
95
95
95
96
96
98
98
98
101
101
102
102
103
104
104
105
105
105
105
106
106
106
107
108
110
110
111
111
112
112
116
119
120
121
122
122
123
124
124
127
132
132
134
139
139
140
143
144
144
144
144
145
145
147
149
150
150
155
157
157
157
158
158
159
160
160
160
161
161
161
161
162
162
162
163
163
163
164
166
166
167
168
171
171
175
179
181
183
185
186
187
188
193
193
197
201
201
205
207
207
209
209
209
214
216
216
219
219
228
232
232
234
241
314
318
319
333
333
335
351
353
355
1
1
1
1
1
3
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
32
32
32
32
33
33
33
33
33
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
36
36
36
36
36
36
36
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
40
40
40
41
41
41
41
41
41
41
42
42
42
42
42
42
43
43
43
43
43
44
44
44
44
44
44
44
45
45
45
46
46
47
47
48
48
48
49
49
49
49
49
49
49
49
49
50
51
51
51
51
51
52
52
53
54
54
54
54
54
55
55
56
57
57
57
57
57
58
58
58
59
59
59
60
60
60
60
60
60
60
60
60
61
61
61
62
62
62
62
62
62
63
63
63
63
63
63
63
64
65
67
67
67
67
67
68
68
68
69
69
71
71
71
71
72
72
73
73
73
73
74
74
74
78
78
78
78
78
78
79
79
79
79
79
79
80
81
81
81
81
81
81
81
82
82
83
83
83
83
83
84
84
85
85
85
86
86
86
86
86
88
88
88
88
88
88
89
92
93
93
94
94
94
95
95
95
96
97
98
98
99
99
99
101
101
102
103
103
103
104
104
105
105
106
106
106
106
107
107
107
108
111
111
112
112
113
113
114
117
117
117
117
120
121
122
122
123
123
123
123
124
125
125
125
128
133
133
135
140
140
141
144
145
145
145
145
146
146
148
150
151
151
155
156
156
159
159
160
161
161
161
161
162
162
162
163
163
163
164
164
164
165
167
167
168
169
172
180
182
184
184
186
187
188
189
194
194
198
202
202
206
210
210
210
215
217
217
220
220
229
233
233
235
240
240
242
315
319
320
334
336
352
354
356
1
1
1
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
36
36
36
36
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
40
40
40
40
40
40
40
40
40
41
41
42
42
42
42
42
42
42
42
43
43
44
44
44
44
44
44
44
45
45
45
45
45
45
46
46
46
46
47
47
47
48
48
48
48
49
49
50
50
50
50
50
50
50
50
50
50
50
50
50
52
52
52
52
52
53
54
54
54
54
55
55
55
55
55
55
55
56
57
58
58
58
59
59
59
59
60
60
60
61
61
61
61
61
61
62
62
62
62
62
63
63
63
63
63
63
64
64
64
64
64
64
64
64
65
66
66
66
68
68
68
68
68
68
69
69
69
70
70
72
72
72
72
73
73
74
74
75
75
75
79
79
79
79
80
80
80
81
82
82
82
82
83
83
83
83
83
84
84
84
84
85
86
86
86
86
86
87
87
87
87
87
89
89
89
89
89
90
93
93
93
94
94
94
94
95
95
96
96
99
99
100
100
100
102
103
103
104
104
105
105
105
106
106
107
107
107
107
108
108
108
109
109
112
112
114
114
115
117
117
118
118
121
122
124
124
124
125
126
126
126
129
134
134
136
141
141
142
145
146
146
146
146
147
147
149
151
152
152
155
157
159
160
160
161
162
162
162
162
163
163
163
164
164
164
165
165
165
165
166
168
168
169
170
171
171
173
183
185
185
187
188
189
190
195
195
195
195
199
203
203
207
211
211
211
216
218
218
221
221
230
234
234
236
241
243
316
320
321
335
337
353
355
357
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
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
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
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
40
41
41
41
41
41
42
42
42
43
43
43
43
43
43
43
43
44
44
45
45
45
45
46
46
46
46
46
46
47
47
47
47
48
48
48
48
48
48
49
49
49
49
50
50
51
51
51
51
51
51
51
53
53
55
55
56
56
56
56
56
57
58
58
58
59
59
59
60
60
60
60
61
61
61
61
61
62
62
62
62
62
62
62
63
63
64
64
64
64
64
65
65
65
65
65
65
65
65
66
66
67
67
67
69
69
69
69
69
69
70
70
70
71
73
73
73
73
74
74
74
74
74
76
76
76
78
78
78
78
79
80
80
80
81
81
81
82
82
82
83
83
83
83
83
83
84
84
84
84
84
84
85
85
85
85
86
86
87
87
87
88
88
88
88
88
90
90
90
90
90
91
95
95
95
95
95
96
96
100
100
101
101
101
103
103
104
104
104
104
105
105
105
106
106
106
107
107
108
108
108
108
108
109
109
110
110
110
113
113
115
115
118
118
118
122
123
125
125
126
127
127
127
130
135
135
137
142
143
146
147
147
147
147
148
148
148
150
152
153
153
158
160
161
161
161
163
163
163
163
163
164
165
165
165
165
166
166
166
166
167
169
169
170
171
172
174
184
186
186
188
189
190
191
196
196
200
204
204
208
212
212
212
217
219
219
222
222
231
235
235
237
242
244
317
321
322
336
338
354
356
358
1
1
1
1
1
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
35
35
35
36
36
36
36
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
41
41
42
42
42
42
42
43
43
43
43
44
44
44
44
44
45
45
46
46
46
46
47
47
47
48
48
48
48
48
49
49
49
50
50
50
50
50
50
52
52
52
52
52
52
52
54
55
56
57
57
57
57
57
58
59
59
59
59
60
60
60
61
61
61
61
61
62
62
62
62
62
62
62
63
63
63
63
63
63
64
64
65
65
66
66
66
66
66
66
66
66
66
67
67
67
67
67
67
68
68
68
70
70
70
70
70
70
70
71
71
71
72
72
74
74
74
74
74
75
75
75
75
77
77
77
77
77
78
78
78
78
79
79
79
79
79
80
81
82
82
82
83
83
83
83
84
84
84
84
85
85
85
85
85
86
86
86
86
86
87
87
88
89
89
89
89
89
91
91
91
92
95
96
96
96
97
98
102
102
103
103
104
105
105
105
105
105
106
106
106
106
107
108
108
108
108
109
109
109
110
111
112
114
114
115
116
116
118
118
118
118
118
119
123
124
126
126
127
128
128
128
131
136
136
138
143
144
146
148
148
148
148
149
149
149
151
153
154
154
155
156
161
161
162
162
164
164
165
166
166
166
166
167
167
167
167
168
170
170
171
172
173
175
185
187
187
189
190
191
192
197
197
201
205
205
209
213
213
213
218
220
220
223
223
232
236
236
238
243
245
318
322
323
332
337
339
355
357
359
359
1
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
32
32
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
36
36
36
37
37
37
37
38
38
38
38
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
42
42
43
43
43
43
43
43
43
43
44
44
44
45
45
45
46
46
46
46
47
47
47
48
48
48
49
49
50
50
50
50
50
50
50
51
51
51
51
51
51
53
53
53
53
53
53
53
55
55
57
57
58
58
58
58
58
58
59
59
60
61
61
61
62
62
62
62
63
63
63
63
64
64
64
64
64
65
66
66
67
67
67
67
67
67
67
68
68
68
68
69
69
69
71
71
71
71
71
72
72
72
73
73
75
75
75
75
76
76
77
78
78
78
78
78
78
79
79
80
80
80
80
81
82
83
83
83
84
85
85
85
86
86
86
87
87
87
87
87
87
88
88
89
89
90
90
90
90
91
91
91
91
92
92
93
95
95
96
96
97
97
98
103
103
105
106
106
106
106
106
106
107
108
108
109
109
109
109
109
109
110
110
110
111
112
115
115
117
117
119
119
120
124
125
127
127
128
129
129
129
132
137
137
139
141
141
144
145
146
147
148
149
149
149
149
150
150
152
154
154
155
155
155
156
156
162
162
163
163
165
165
166
167
167
167
167
168
168
168
168
169
171
171
173
174
176
186
188
188
190
191
191
192
193
193
198
198
202
206
206
210
214
214
214
219
221
221
224
224
233
237
237
239
244
246
319
323
324
333
335
338
340
356
358
358
360
360
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
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
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
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
33
33
33
33
33
33
33
33
34
34
34
34
35
35
35
35
35
36
36
36
37
37
37
37
37
38
38
38
39
39
39
39
39
39
40
40
40
40
40
41
41
41
41
41
42
42
42
42
42
43
44
44
44
44
44
44
44
44
44
45
45
45
45
46
46
46
47
48
48
48
49
49
49
49
50
50
50
50
50
51
51
51
51
51
52
52
52
52
52
52
54
54
54
54
54
54
54
55
56
59
59
59
59
59
59
59
60
60
61
62
62
62
63
63
63
63
64
64
64
64
64
64
64
64
65
65
65
65
66
67
67
67
68
68
68
68
68
68
68
68
68
69
69
69
69
69
70
70
70
70
72
72
72
72
73
73
73
74
74
74
76
76
76
76
77
77
78
78
79
79
79
79
79
79
80
81
81
81
81
82
83
84
84
84
85
86
86
86
86
86
87
87
87
88
88
88
88
88
89
89
90
91
91
91
92
92
93
93
94
95
96
96
96
98
98
98
98
99
104
104
104
106
106
107
107
107
108
108
109
109
109
110
110
110
111
111
111
112
112
113
116
116
118
118
118
118
120
120
125
125
126
128
128
129
130
130
130
133
138
138
140
142
145
146
147
149
150
150
150
151
151
153
155
155
155
156
156
157
157
161
163
163
164
164
166
166
166
167
168
168
168
168
169
169
169
169
169
170
172
172
175
177
189
189
191
193
194
194
199
199
203
207
207
211
215
215
215
220
222
222
225
225
234
238
238
240
245
247
320
324
325
336
339
341
357
361
361
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
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
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
35
35
36
37
38
38
38
38
38
39
39
39
39
40
40
41
41
41
41
42
42
42
42
43
43
43
43
43
43
43
43
43
44
44
44
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
47
48
48
49
49
49
50
50
50
50
51
51
52
52
52
52
52
52
53
53
53
53
53
53
55
55
55
55
55
55
57
59
60
60
60
60
60
60
60
60
61
61
61
61
62
62
63
63
64
64
64
65
65
65
65
65
65
66
66
66
66
68
68
68
69
69
69
69
69
69
69
69
69
70
70
70
71
71
71
71
73
73
73
73
74
74
74
75
75
75
75
75
77
77
77
77
78
78
78
79
79
79
79
80
80
80
80
80
81
82
82
83
83
84
85
85
86
86
86
86
86
87
87
87
88
88
88
89
89
89
90
91
91
91
91
92
92
92
93
93
94
94
94
95
95
95
95
97
97
97
97
97
97
99
99
99
99
100
105
105
105
105
106
107
108
108
109
109
110
110
111
111
111
112
112
112
113
114
117
117
119
119
119
124
126
126
127
129
129
130
131
131
131
134
139
139
141
143
146
147
147
149
150
151
151
151
152
152
154
156
156
156
157
157
158
158
162
164
165
165
167
168
169
169
169
169
170
170
170
170
170
171
173
173
176
178
189
190
190
192
194
195
195
200
200
204
208
208
212
216
216
216
221
223
223
226
226
235
239
239
241
246
248
321
325
326
337
340
342
358
362
362
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
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
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
29
29
29
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
37
38
39
39
39
40
40
40
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
43
43
43
43
44
44
44
44
44
44
44
44
45
45
45
45
46
46
46
46
46
46
46
46
47
47
47
47
48
49
49
50
50
50
50
51
51
51
51
52
52
53
53
53
53
53
54
54
54
54
56
56
56
56
56
56
58
58
59
59
59
61
61
61
61
61
61
61
61
61
61
61
62
62
63
63
64
64
64
65
65
66
66
66
66
67
67
67
67
67
69
69
70
70
70
70
70
70
70
71
71
71
72
72
72
72
73
74
74
74
74
75
75
75
75
75
76
76
76
78
78
78
78
78
79
79
79
79
79
80
80
81
81
81
81
82
82
82
82
82
82
82
83
84
85
85
86
86
86
86
87
87
87
87
87
87
87
88
88
88
88
89
89
89
89
89
90
90
90
91
92
92
92
93
93
93
93
94
94
95
95
95
96
96
97
97
98
98
98
98
100
100
100
100
100
101
106
106
106
106
107
108
109
109
110
112
112
112
112
112
113
113
113
114
115
118
118
118
120
120
120
127
127
127
128
130
130
131
132
132
132
135
140
142
144
147
148
148
149
151
152
152
152
152
153
153
155
155
157
158
158
158
158
159
159
163
163
165
166
166
168
169
170
170
170
170
171
171
171
171
171
172
174
177
179
186
190
191
191
193
195
196
196
201
201
205
209
209
213
217
217
217
222
224
224
227
227
236
240
242
247
249
322
326
327
338
341
343
359
363
363
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
29
29
29
29
29
29
29
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
36
36
37
38
38
38
38
38
39
39
39
40
41
41
41
42
42
42
42
42
42
42
43
43
43
43
44
44
44
44
44
44
45
45
45
45
45
45
45
45
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
49
50
50
50
51
51
51
51
52
52
52
53
53
53
53
53
53
53
53
54
54
54
54
54
55
55
55
55
55
55
55
55
57
57
57
57
59
59
60
61
61
62
62
62
62
62
62
62
62
62
63
64
64
64
64
65
65
66
66
66
67
67
67
67
68
68
68
68
68
68
68
70
71
71
71
71
71
71
71
72
72
72
73
75
75
75
75
76
76
76
76
77
77
77
79
79
79
80
80
80
81
81
82
82
82
82
83
83
83
83
83
84
85
86
86
86
86
87
87
87
87
87
87
88
88
88
88
89
89
89
89
90
90
90
90
90
90
91
91
91
91
92
93
93
93
94
94
94
96
96
96
97
98
98
99
99
99
99
101
101
102
107
107
107
107
107
108
108
108
109
110
110
110
113
113
113
113
113
114
114
114
115
116
117
118
118
119
119
119
121
121
128
128
129
131
131
132
132
133
133
133
136
139
139
141
143
145
148
149
152
153
153
153
153
154
154
156
156
158
159
159
159
160
160
166
167
167
169
170
171
171
171
171
172
172
172
172
172
173
175
178
180
191
192
192
194
196
197
197
202
202
206
210
210
214
218
218
218
223
225
225
228
228
237
239
239
241
248
250
323
327
328
339
342
344
360
364
364
1
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
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
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
29
29
29
29
29
29
30
30
30
30
30
30
30
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
36
36
36
37
37
37
38
38
39
39
40
40
40
40
41
42
43
43
43
43
43
44
44
44
44
45
45
45
45
45
46
46
46
46
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
48
49
49
49
49
49
50
51
51
51
51
52
53
53
53
53
53
54
54
54
54
54
54
54
54
54
55
55
55
55
56
56
56
56
56
58
58
58
58
59
60
60
61
61
61
62
62
63
63
63
63
63
63
63
63
64
65
65
65
65
66
66
66
67
67
67
68
68
68
69
69
69
69
69
69
69
70
70
70
71
71
72
72
72
72
72
72
73
74
74
74
75
75
76
76
76
76
77
77
77
77
78
78
78
79
79
80
80
80
81
81
81
81
82
83
83
83
83
84
84
87
87
87
87
87
88
88
88
88
88
88
89
89
89
89
90
90
90
91
91
91
92
92
92
92
92
93
94
94
95
95
95
97
97
97
97
97
98
99
99
99
100
100
102
102
103
106
108
108
108
109
109
109
109
110
111
111
111
111
114
114
114
115
115
115
115
116
117
118
118
118
118
119
120
120
120
122
122
129
130
132
132
133
133
134
134
134
137
140
142
144
146
149
150
153
154
154
154
154
155
155
157
157
159
160
160
160
161
167
168
168
170
171
172
172
172
172
173
173
173
173
173
174
179
181
192
193
193
195
197
198
198
203
203
207
211
211
215
219
219
219
224
226
226
229
229
238
240
242
249
251
324
328
329
340
343
345
361
365
365
1
1
2
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
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
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
28
28
28
28
28
28
29
29
29
29
29
29
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
37
37
38
38
38
38
39
39
39
40
40
40
40
40
40
42
42
43
44
44
44
44
44
44
45
45
45
45
45
45
46
46
46
47
47
47
47
48
48
48
48
49
49
49
49
49
49
49
49
49
50
50
50
51
51
52
52
53
53
54
54
54
54
55
55
55
55
55
55
55
56
56
56
57
57
59
59
59
59
60
61
61
62
62
63
63
63
64
64
64
64
64
65
65
66
67
67
68
68
69
69
69
69
70
70
70
70
70
71
71
71
71
72
73
73
73
73
73
73
74
75
75
75
76
77
77
77
78
78
78
78
79
80
80
81
81
81
82
82
82
83
84
84
84
87
88
88
88
88
88
88
88
89
89
89
90
90
90
90
90
90
91
91
92
92
93
93
93
93
93
94
95
95
96
96
96
96
97
97
98
98
98
98
99
101
101
103
104
107
107
109
109
109
109
110
110
111
112
112
115
115
115
116
116
116
116
117
118
119
119
120
121
121
121
123
123
130
131
133
133
133
134
134
134
135
135
135
138
141
143
145
147
150
151
154
155
155
155
155
156
156
158
160
161
161
161
162
168
169
169
171
172
173
173
173
173
174
174
174
174
174
175
180
182
193
194
194
196
198
199
199
204
204
208
212
212
216
220
220
220
225
227
227
230
230
239
241
243
250
252
325
329
330
341
344
346
362
366
366
1
1
1
1
1
1
2
3
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
28
29
29
29
29
30
30
30
30
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
38
38
38
38
38
39
39
40
40
40
40
40
41
41
42
42
42
42
42
42
43
43
44
44
44
45
45
45
45
45
45
46
46
46
46
46
46
47
47
47
48
48
48
48
49
49
49
49
50
50
50
50
51
51
52
53
53
53
54
54
54
54
55
55
55
55
56
56
57
57
57
58
58
60
60
60
60
60
61
62
62
62
63
63
65
65
65
65
65
65
66
67
67
68
68
69
69
69
69
69
70
70
70
70
70
71
71
71
72
72
72
73
74
74
74
74
74
74
74
75
75
75
75
75
75
75
76
76
76
76
77
78
78
79
79
79
79
79
79
80
81
81
81
81
82
82
82
83
83
85
85
85
87
87
89
89
89
89
90
90
90
90
91
91
91
91
91
92
93
93
93
93
94
94
94
94
95
96
96
97
97
97
97
97
97
97
97
99
99
99
99
99
100
100
100
100
102
102
104
105
110
110
110
110
110
112
113
113
113
116
116
116
116
117
117
117
117
118
118
119
119
119
119
119
120
121
122
122
124
124
131
132
134
135
135
135
136
136
136
139
142
144
146
148
151
152
155
155
155
156
156
156
156
157
157
158
159
159
161
161
162
162
162
162
163
163
169
170
170
172
173
174
174
175
175
175
175
175
176
181
183
194
195
195
197
199
200
200
205
205
209
213
213
217
221
221
221
226
228
228
231
231
240
242
244
251
253
326
330
331
342
345
346
347
363
367
367
1
1
1
1
3
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
29
29
30
30
30
30
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
35
35
35
35
35
35
35
36
36
36
36
36
36
37
37
37
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
40
40
40
40
40
40
41
41
42
42
43
43
43
43
43
43
44
45
45
45
45
45
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
48
48
48
49
49
49
49
49
50
50
50
51
51
51
51
51
52
52
53
53
54
55
55
55
55
55
56
56
56
57
58
58
58
59
59
60
61
61
61
61
61
61
62
62
62
63
63
63
63
64
65
65
66
66
66
66
66
67
67
68
68
69
69
70
70
70
70
70
70
70
71
71
71
71
72
72
72
72
74
75
75
75
75
75
75
75
76
76
76
76
77
77
77
78
78
79
79
79
79
79
80
80
80
80
80
80
81
82
82
82
82
82
82
83
83
84
84
85
86
86
86
86
88
90
90
90
90
90
91
91
91
92
92
92
92
92
93
94
94
95
95
95
95
96
97
97
97
98
98
98
98
98
98
99
99
99
100
100
100
100
100
100
101
101
101
101
101
102
102
105
106
110
110
111
111
113
113
114
114
116
117
117
117
117
118
118
118
119
120
120
120
121
121
121
122
123
123
125
125
132
133
135
136
136
136
137
137
137
140
143
145
149
152
153
156
156
157
157
157
157
158
158
158
159
162
162
162
163
163
163
164
164
170
171
171
173
174
175
175
175
176
176
176
176
177
182
184
195
196
196
198
200
201
201
206
206
210
214
214
218
222
222
222
227
229
229
232
232
241
242
243
245
252
254
327
331
332
343
345
347
348
364
368
368
1
1
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
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
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
29
29
29
30
30
30
30
30
30
31
31
31
31
31
31
31
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
38
38
38
39
39
39
39
39
39
39
39
40
40
41
41
41
41
41
41
41
41
41
41
42
44
45
46
46
46
46
46
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
49
49
49
50
50
50
50
51
51
51
52
52
52
53
53
53
53
53
53
53
54
56
56
56
57
57
57
58
59
59
59
59
60
60
60
61
62
62
62
62
62
63
63
64
64
64
65
66
66
66
66
67
67
67
67
67
67
68
69
69
70
70
70
71
71
71
71
71
71
72
72
72
72
72
73
73
73
73
75
75
75
76
76
76
76
76
76
77
77
77
77
78
78
79
80
80
80
80
80
81
81
81
81
81
82
82
83
83
84
84
84
84
85
85
85
85
87
87
87
87
88
88
88
90
91
91
91
91
91
92
92
92
93
93
94
94
94
94
95
96
96
96
97
97
98
98
98
99
99
99
99
100
101
101
102
102
102
102
102
103
106
107
107
107
110
112
112
114
115
118
118
118
119
119
119
119
119
120
121
121
121
122
122
123
124
124
126
126
133
134
136
137
137
137
138
138
138
141
144
146
150
153
154
157
158
158
158
158
159
159
159
160
162
163
163
163
164
164
164
165
165
171
172
175
175
176
176
176
177
177
177
178
180
183
185
196
197
197
199
201
202
202
207
207
211
215
215
219
223
223
223
228
230
230
233
233
242
243
244
246
249
253
255
328
333
344
348
349
365
369
369
1
1
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
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
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
30
30
31
31
31
31
31
31
31
31
32
32
32
32
32
32
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
42
42
42
42
42
43
43
45
45
47
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
50
50
50
51
51
51
51
51
51
51
51
52
53
53
53
53
53
54
54
54
54
54
55
57
57
58
58
58
59
59
60
60
60
60
60
60
60
60
61
61
61
62
62
62
63
63
63
63
63
64
64
65
65
67
67
68
68
68
69
70
71
71
71
71
72
72
72
72
72
73
73
74
74
74
74
76
77
77
77
77
77
77
78
78
78
79
79
80
81
81
82
82
82
82
82
82
82
83
84
84
84
86
86
86
86
88
88
88
88
88
89
89
90
90
90
91
92
92
93
93
93
94
94
95
95
95
96
97
97
97
98
98
99
99
99
100
100
100
102
102
103
103
103
103
104
107
108
108
108
113
113
113
113
114
115
116
118
119
119
119
120
120
120
120
121
122
123
123
125
125
127
127
134
135
137
138
138
138
139
139
139
142
145
147
147
151
154
155
158
159
159
159
159
160
160
160
163
163
164
164
164
165
165
172
173
176
177
177
177
178
178
178
179
181
184
186
197
198
198
200
202
203
203
208
208
212
216
216
220
224
224
224
229
231
231
234
234
243
245
247
250
254
256
329
331
334
345
349
350
366
370
370
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
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
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
33
33
33
33
33
34
34
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
43
43
43
43
44
44
46
46
46
46
46
48
48
48
48
48
48
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
52
52
52
52
52
52
52
52
53
53
53
54
54
54
54
54
55
55
55
55
55
55
55
56
56
58
58
58
59
59
59
60
60
60
60
61
61
61
61
61
62
62
62
63
63
63
64
64
64
64
64
65
65
65
66
66
67
67
67
67
67
67
69
69
69
70
71
72
72
72
72
72
72
73
73
73
74
74
74
74
75
75
75
75
75
77
77
78
78
78
78
78
78
78
78
79
79
80
80
80
82
82
82
82
82
83
83
83
83
83
83
84
85
86
87
87
87
87
87
89
89
89
89
89
89
91
91
91
91
91
92
94
94
95
95
96
96
96
97
98
98
98
99
99
100
100
100
101
101
101
101
103
104
104
105
105
108
109
109
111
114
114
114
116
117
119
119
120
120
120
121
121
121
121
122
123
126
126
128
128
135
136
138
139
139
139
140
140
140
143
146
148
148
152
155
155
156
159
160
160
160
160
160
161
161
162
162
164
164
164
164
165
165
165
166
173
174
178
178
179
179
179
180
182
185
187
198
199
199
199
201
201
203
204
204
209
209
213
217
217
221
225
225
225
230
232
232
235
235
244
246
248
251
255
257
330
331
332
335
346
350
351
367
371
371
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
31
31
31
31
31
31
32
32
32
32
32
32
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
41
41
41
41
42
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
44
44
46
46
47
47
47
47
47
47
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
51
51
51
51
51
51
51
52
53
53
53
53
53
53
53
53
54
54
54
54
55
55
55
55
55
55
55
55
56
56
59
59
60
60
60
60
61
61
62
62
62
62
63
63
63
63
64
64
64
65
65
65
65
65
66
66
66
67
67
67
67
68
68
68
70
70
70
70
71
71
72
73
73
73
74
74
74
75
75
75
75
75
76
76
76
76
76
79
79
79
79
79
79
80
80
81
81
82
83
83
83
83
83
83
83
83
84
84
84
84
84
84
84
84
85
86
86
87
88
88
88
88
88
90
90
90
92
92
93
94
95
95
96
96
97
98
99
99
99
100
100
101
101
101
102
102
104
105
105
106
106
106
108
109
110
110
110
110
110
112
112
115
116
117
118
119
119
120
120
121
121
121
121
122
122
122
123
124
127
127
129
129
136
137
139
140
140
140
141
141
141
147
149
153
156
156
157
158
160
161
161
161
161
162
162
165
165
165
166
166
167
174
175
177
177
179
179
180
180
180
181
183
186
188
199
200
202
202
204
205
205
210
210
214
218
218
222
226
226
226
231
233
233
236
236
247
249
252
256
258
331
333
336
347
351
352
368
372
372
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
32
32
32
32
32
32
33
33
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
41
41
41
41
41
41
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
46
46
46
47
48
48
48
49
50
50
50
50
50
50
50
50
50
50
50
51
52
52
52
52
52
52
52
53
54
54
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
56
56
56
56
56
56
56
56
56
56
57
57
60
60
60
60
60
61
61
61
62
62
63
63
63
64
64
64
64
64
64
64
65
66
66
66
66
67
68
68
68
69
69
70
70
71
71
71
71
72
72
72
72
72
72
72
72
72
73
74
74
74
74
75
75
75
75
76
76
76
77
77
77
77
77
80
80
80
80
80
80
81
81
82
82
84
84
84
85
85
85
85
85
85
85
85
85
86
87
87
89
89
89
89
89
89
91
91
91
91
91
92
96
96
96
97
97
97
97
98
99
100
100
100
101
102
102
102
103
103
103
105
106
106
107
110
111
111
111
113
113
116
117
118
118
119
119
120
121
121
121
122
122
123
123
123
124
125
128
128
130
130
137
138
141
141
141
142
142
142
148
150
154
157
158
158
159
161
162
162
162
162
163
163
163
166
166
166
167
167
168
175
176
178
180
180
181
181
181
182
184
187
187
189
189
200
201
203
203
205
206
206
211
211
215
219
219
223
227
227
227
232
234
237
237
248
250
253
259
332
334
337
348
352
353
369
373
373
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
32
32
32
32
33
33
33
33
33
33
33
34
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
40
40
41
41
41
41
41
41
41
42
42
42
42
42
42
42
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
47
47
48
48
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
52
52
53
53
53
54
54
54
55
55
55
55
55
55
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
58
61
61
61
62
62
62
63
64
64
64
64
64
65
65
65
65
65
65
66
67
67
67
67
69
69
70
70
71
71
72
72
72
72
72
72
72
72
73
73
73
73
73
73
73
74
75
75
76
76
76
77
77
77
78
78
78
78
78
78
78
78
81
81
81
81
82
82
82
82
82
83
83
83
83
84
84
84
84
84
85
85
86
86
86
86
86
86
86
86
86
86
87
87
90
90
90
90
90
90
91
92
92
92
92
92
93
94
94
97
97
97
98
98
98
98
98
99
100
100
100
100
101
101
101
102
103
103
103
103
104
104
106
107
107
107
108
108
111
111
112
114
114
116
116
117
119
119
120
121
121
122
122
122
123
123
124
124
124
125
126
129
129
131
131
138
139
142
142
142
143
143
143
148
149
149
149
151
155
158
159
159
160
162
163
163
163
163
164
164
164
164
167
168
168
169
176
177
179
181
181
182
182
182
183
185
190
190
201
202
204
204
206
207
207
212
212
216
220
220
224
228
228
228
233
233
233
235
238
238
249
251
254
256
258
260
333
335
338
349
353
354
370
374
374
1
2
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
31
31
31
31
31
31
31
32
32
32
33
34
34
34
34
34
34
35
35
35
35
35
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
41
41
42
42
42
42
42
42
42
42
42
43
43
43
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
47
47
47
48
48
49
49
50
50
50
50
50
51
51
52
52
52
52
52
52
52
52
53
54
54
54
54
54
55
55
55
55
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
57
58
58
58
58
58
58
58
59
60
60
60
62
62
62
63
63
63
63
64
65
65
65
65
66
66
66
66
66
66
68
68
68
68
68
68
70
70
71
71
71
72
72
73
73
73
73
73
73
74
74
74
74
75
75
76
76
77
77
77
77
77
78
78
78
79
79
79
79
79
80
80
82
82
82
82
82
83
83
83
83
83
83
84
84
84
84
85
85
85
86
86
87
87
87
87
87
87
87
87
88
89
91
91
91
91
91
91
91
91
91
92
93
93
93
95
95
97
98
98
98
99
99
99
100
101
101
101
102
102
102
103
104
104
104
105
107
108
108
108
109
110
110
111
112
113
114
115
117
118
119
120
120
121
121
122
122
123
123
124
124
125
125
125
126
127
130
130
132
132
139
140
143
143
143
143
144
144
144
150
150
150
150
150
152
156
156
159
159
159
160
160
161
163
164
164
164
164
165
165
166
168
169
169
170
177
178
180
182
182
183
183
183
184
186
191
191
202
203
205
205
207
208
208
213
213
217
221
221
225
229
229
229
234
234
236
239
239
250
252
255
259
261
334
336
339
350
354
355
371
375
375
1
2
3
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
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
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
25
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
33
33
33
34
34
35
35
35
35
35
35
35
35
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
39
39
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
47
47
47
47
48
49
49
49
49
49
50
50
51
51
52
52
53
53
53
53
53
53
54
54
54
54
54
54
54
55
55
55
55
55
56
56
56
56
56
57
57
57
57
57
57
58
58
58
58
58
59
59
59
59
60
60
60
61
61
63
64
64
64
64
65
66
66
66
66
66
66
67
67
67
67
69
69
69
71
71
71
72
72
72
72
73
73
73
74
74
74
74
74
74
75
75
75
75
75
76
77
78
78
78
78
78
78
78
79
79
79
80
80
80
80
80
81
81
81
83
83
83
83
83
83
84
84
84
85
85
85
85
86
86
86
86
87
88
88
88
88
88
88
88
89
91
91
91
91
92
92
92
92
92
92
92
94
94
94
94
96
96
96
98
98
98
99
99
99
100
100
100
100
100
101
101
103
103
103
104
104
104
105
105
105
106
109
109
110
111
111
113
114
116
119
119
120
121
121
122
122
122
122
122
123
123
124
125
125
126
126
126
127
128
131
131
133
140
141
144
144
144
144
145
145
145
148
150
150
151
151
151
153
159
160
160
160
161
161
162
164
165
165
165
165
166
166
166
169
171
178
179
181
183
183
184
184
184
185
187
192
192
203
204
206
206
208
209
209
214
214
218
222
222
226
230
230
230
235
235
237
240
240
244
251
253
256
260
262
335
337
340
351
355
356
372
376
376
1
1
3
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
29
29
29
29
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
34
34
34
34
34
34
35
35
35
35
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
38
38
38
38
38
39
39
39
39
39
39
39
40
40
40
40
40
40
41
41
41
41
41
42
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
46
46
46
46
46
47
47
47
47
47
47
47
47
48
48
49
49
49
49
49
50
50
50
50
51
51
51
51
54
54
54
54
54
55
55
55
55
56
56
56
56
56
56
56
57
57
57
57
57
58
58
58
59
59
59
59
60
60
60
60
61
62
62
64
64
65
65
65
66
66
66
66
66
67
67
67
67
68
68
68
68
70
72
72
72
73
73
73
73
73
74
74
74
74
75
75
75
76
76
77
77
78
79
79
79
79
79
79
79
79
80
80
80
81
81
81
81
81
83
84
84
84
84
85
85
86
86
86
86
87
87
88
89
89
89
89
89
89
89
89
89
90
91
91
91
92
93
93
93
93
93
93
94
95
95
95
95
98
100
100
100
100
101
101
101
101
101
102
104
104
104
105
105
106
106
106
107
108
108
108
110
110
111
111
111
111
111
112
114
115
117
120
121
122
122
123
123
123
123
123
123
124
125
126
127
127
127
128
129
132
132
132
132
134
141
142
145
145
145
146
146
146
149
151
152
152
152
154
159
160
160
161
161
161
162
162
165
166
166
166
166
167
167
170
172
179
180
182
184
184
185
185
185
186
188
193
193
204
205
207
207
209
210
210
215
215
219
223
223
227
231
231
231
236
236
238
241
241
245
248
252
254
257
261
263
336
338
341
352
356
357
373
377
377
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
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
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
30
30
30
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
34
34
34
34
34
35
35
35
35
35
35
35
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
39
39
39
39
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
47
47
47
47
47
47
47
48
48
48
48
48
48
49
49
49
50
50
50
51
51
51
53
54
55
55
55
55
55
56
56
57
57
57
57
57
57
57
57
57
58
58
58
58
59
59
60
60
60
61
61
61
61
62
62
63
63
64
65
65
66
66
66
66
67
67
67
67
67
68
68
68
69
69
69
69
71
71
72
73
73
73
74
74
74
75
75
76
76
76
77
78
78
79
80
80
80
80
80
80
80
80
81
81
81
81
82
82
82
82
82
82
83
84
84
85
85
85
85
86
86
87
87
87
87
89
89
90
90
90
90
90
90
90
90
91
92
92
92
92
92
93
94
94
94
94
95
95
96
96
96
96
101
101
101
101
102
102
102
102
102
103
103
103
105
105
105
106
106
106
107
107
107
107
108
109
109
111
111
111
112
112
112
113
115
116
118
121
123
124
124
124
124
124
126
127
128
128
129
130
133
133
133
135
142
143
146
146
146
146
147
147
147
150
150
150
150
152
153
155
159
160
161
161
162
162
162
163
166
167
167
167
167
168
168
171
173
180
181
183
185
185
186
186
186
187
189
194
194
205
206
208
208
210
211
211
216
216
220
224
224
228
232
232
232
237
237
239
242
249
253
255
258
262
264
337
339
342
353
357
358
374
378
378
1
1
1
1
1
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
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
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
31
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
39
39
40
40
40
40
40
40
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
47
47
47
47
48
48
48
48
48
48
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
51
51
52
52
53
53
53
53
53
53
54
54
54
54
55
56
56
56
56
56
56
56
56
57
57
57
58
58
58
58
58
59
59
60
60
61
61
62
62
62
62
63
64
65
66
66
67
67
67
68
68
68
68
69
69
69
70
70
71
71
72
72
73
74
74
74
75
75
75
76
76
77
77
77
78
78
79
79
79
80
81
81
81
81
81
82
83
83
83
83
83
83
83
83
84
84
84
85
85
85
86
86
86
86
87
87
88
89
90
90
91
91
91
91
91
91
91
91
92
93
93
93
95
95
95
95
97
97
97
97
98
98
102
102
102
102
103
103
104
104
104
106
106
106
107
107
107
107
108
108
108
109
111
111
112
112
112
112
113
113
113
116
117
119
122
122
123
123
125
125
125
127
128
129
129
130
131
134
134
136
143
144
147
147
147
148
148
148
151
151
151
154
156
159
161
162
162
163
163
164
167
168
168
168
169
172
174
181
182
184
186
186
187
187
187
188
190
195
195
206
207
209
209
211
212
212
217
217
221
225
225
229
233
233
238
238
240
241
241
243
250
254
256
259
263
265
338
340
343
354
358
359
375
379
379
1
1
1
1
1
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
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
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
25
25
25
25
26
26
26
26
26
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
31
31
31
32
32
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
39
39
39
39
39
40
40
40
40
40
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
49
49
49
49
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
52
53
53
54
54
54
54
54
55
55
56
56
56
57
57
57
57
57
57
58
58
58
58
59
59
59
60
61
61
62
62
63
63
63
63
63
63
63
64
64
64
65
66
67
67
67
68
68
68
68
68
68
68
69
69
69
69
70
70
71
71
72
73
73
73
73
73
74
75
75
75
75
75
76
76
77
77
78
78
78
79
80
81
82
82
82
82
82
83
84
84
84
84
84
84
85
85
86
86
86
87
87
87
87
88
89
90
91
91
92
92
92
92
92
92
93
95
95
95
96
96
96
96
96
96
96
98
98
98
98
98
99
99
100
100
100
101
103
103
103
104
105
107
107
107
108
108
109
109
109
109
110
110
112
113
113
113
113
114
117
119
120
122
122
122
123
123
124
124
125
126
126
128
129
130
130
131
132
135
135
137
139
141
144
145
148
148
148
149
149
149
150
152
152
152
155
155
157
157
160
162
163
164
164
165
168
169
169
170
173
175
182
183
185
187
187
188
188
188
189
191
196
196
207
208
210
210
212
213
213
218
218
222
226
226
230
232
232
234
234
239
239
241
242
244
251
255
255
257
257
260
264
266
339
341
344
355
359
360
376
380
380
1
1
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
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
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
27
27
27
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
33
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
37
37
37
37
37
37
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
40
40
40
40
41
41
41
41
41
41
41
42
42
42
42
42
42
42
43
43
43
43
43
43
45
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
48
48
48
49
49
49
49
50
50
50
50
50
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
55
56
56
56
56
56
57
57
58
58
58
58
58
58
59
59
61
62
62
63
63
63
64
64
64
64
64
64
64
64
64
65
65
65
66
66
66
66
67
68
69
69
69
70
70
70
71
71
72
72
72
73
74
74
74
74
75
75
75
76
76
76
77
77
78
78
78
78
78
78
79
79
79
80
81
82
83
83
83
83
83
84
84
85
85
85
85
85
85
87
87
87
87
87
87
87
87
88
88
88
88
89
89
90
91
92
93
93
93
93
93
93
93
94
95
95
95
96
96
97
97
97
97
97
97
97
99
99
99
99
101
101
101
101
101
101
102
102
104
104
104
105
106
108
108
108
109
109
109
110
110
110
111
111
111
111
111
111
113
114
114
114
114
114
115
118
120
121
122
122
123
123
124
124
125
125
127
127
128
129
130
130
131
131
131
132
133
136
136
138
142
145
146
149
149
149
150
150
150
150
151
153
153
158
158
161
163
165
165
166
169
170
170
174
176
183
186
188
188
189
189
189
190
192
197
197
208
209
211
211
213
214
214
219
219
223
227
227
231
233
235
235
240
240
242
243
245
252
258
258
261
265
267
342
343
345
356
360
361
377
381
381
1
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
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
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
34
34
34
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
39
39
40
40
40
40
40
40
40
40
41
41
41
41
41
42
42
42
42
42
42
42
42
43
43
43
43
43
43
44
44
44
44
45
45
45
47
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
51
51
51
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
54
56
57
57
57
57
57
58
58
58
59
59
60
60
60
62
63
63
63
64
64
65
65
65
65
65
65
65
65
65
66
66
66
66
67
67
67
67
67
68
68
68
68
69
70
70
70
71
71
72
72
73
73
73
74
74
74
75
75
75
75
77
77
79
79
79
79
79
79
79
80
80
81
82
83
83
84
84
84
84
85
85
86
86
86
86
86
87
87
88
88
88
88
89
89
89
89
89
89
90
90
91
91
91
93
93
94
94
94
94
94
94
95
97
97
98
98
98
98
98
98
98
100
100
102
102
102
102
102
102
104
105
105
105
106
107
108
109
109
109
110
110
111
111
111
111
111
112
112
112
112
112
113
115
115
115
115
115
115
115
116
119
119
119
122
122
122
123
123
124
124
125
125
126
128
129
130
132
132
132
133
134
137
137
139
143
146
147
150
150
150
151
151
151
152
154
154
159
159
161
166
166
166
166
167
170
171
175
177
184
186
187
189
189
190
190
190
191
193
198
198
209
210
212
212
214
215
215
220
220
224
228
228
232
234
236
241
241
243
244
246
253
259
259
262
266
268
339
343
344
346
357
361
362
378
382
382
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
29
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
34
34
34
35
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
40
40
40
40
40
40
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
43
43
43
43
44
44
44
44
44
44
45
45
45
45
45
46
46
46
47
47
48
48
48
48
48
48
48
48
48
48
49
49
49
49
50
50
50
50
50
50
50
50
50
51
51
51
51
51
52
52
52
52
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
54
55
55
56
56
57
57
58
58
58
58
59
60
60
60
61
61
63
63
64
64
64
64
65
65
66
66
66
66
66
66
67
67
67
67
68
68
68
68
69
69
69
70
71
72
72
72
73
73
73
74
74
75
76
76
76
76
77
77
78
78
78
79
79
80
80
80
80
80
80
80
80
80
80
81
81
81
81
81
81
81
82
83
83
84
84
84
84
85
85
85
86
87
87
87
87
87
87
88
88
89
89
90
90
90
90
90
90
91
91
91
91
92
92
92
92
94
94
95
95
95
95
95
95
96
96
98
98
99
99
99
99
99
99
101
101
102
102
106
106
106
107
108
109
110
110
110
111
111
111
112
112
112
112
112
112
112
113
113
113
113
115
115
116
116
116
116
116
117
120
120
122
123
123
124
124
124
125
125
126
129
130
131
133
133
133
134
135
138
138
140
144
147
148
150
151
151
151
152
152
152
153
155
155
160
160
163
164
167
167
167
167
168
170
170
172
176
178
183
185
187
188
190
190
191
191
191
192
194
199
199
210
211
213
213
215
216
216
221
221
225
229
229
233
235
237
242
242
244
245
247
254
260
260
263
267
269
344
345
347
358
362
363
379
383
383
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
25
25
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
30
30
31
31
31
31
31
31
31
32
32
32
32
32
32
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
35
35
35
36
36
37
37
37
37
37
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
41
41
41
41
42
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
44
44
44
44
44
45
45
45
46
46
46
46
46
47
47
47
47
47
47
47
48
48
48
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
53
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
55
56
56
57
57
57
57
58
58
58
58
59
60
61
61
61
63
64
64
65
65
65
65
65
66
66
66
67
67
67
67
67
67
67
67
68
68
68
68
68
69
69
69
69
70
70
70
71
71
71
72
72
73
73
74
74
74
74
74
75
75
76
77
78
79
79
79
80
80
81
81
81
82
82
82
82
82
82
82
82
84
84
85
85
86
86
86
87
88
88
88
88
88
88
88
89
89
90
91
91
91
91
91
91
91
91
92
93
93
95
95
96
96
96
96
96
96
97
97
97
99
100
100
100
100
102
102
104
107
107
107
108
109
109
109
109
110
111
111
111
112
112
113
113
113
113
113
114
114
114
114
115
115
116
117
117
117
117
117
118
118
121
121
122
123
124
124
126
127
130
131
132
134
134
134
135
136
139
139
141
145
148
149
150
151
152
152
152
153
153
153
156
156
161
161
163
165
165
168
168
169
171
173
177
179
186
188
189
191
191
192
192
192
192
192
193
195
200
200
211
212
214
214
216
217
217
222
222
226
230
230
234
236
238
243
243
245
246
248
255
261
261
264
268
270
345
346
348
359
363
364
380
384
384
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
31
31
32
32
32
32
33
33
33
33
33
34
34
34
34
34
35
35
35
35
35
35
35
36
36
36
36
36
37
37
37
37
37
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
45
45
45
45
46
46
47
47
47
47
47
48
48
48
48
48
48
49
49
49
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
54
55
55
55
55
55
55
55
56
56
56
56
56
57
58
58
58
58
58
58
59
59
59
59
59
60
61
62
62
62
64
64
65
65
65
66
66
66
67
67
67
67
67
68
68
68
68
68
68
68
68
68
68
69
69
69
69
71
71
73
73
74
74
75
75
75
75
76
77
78
79
79
80
80
80
80
81
81
82
82
83
83
83
83
83
83
83
85
86
86
87
87
87
87
88
88
89
89
89
89
91
91
91
92
92
92
92
92
92
93
94
94
96
96
97
97
97
97
97
97
98
100
101
101
101
101
103
103
103
106
107
108
108
108
109
109
109
110
110
110
112
112
112
112
112
113
113
113
114
114
114
114
114
114
114
115
115
116
117
118
118
118
122
122
123
123
124
124
124
125
128
131
132
133
135
135
135
136
140
140
142
146
149
150
152
153
153
153
153
154
154
154
157
157
162
162
167
169
169
170
172
174
178
180
187
189
190
192
192
193
193
193
194
196
201
201
212
213
215
215
217
218
218
223
223
227
231
231
235
237
239
244
244
246
247
249
256
262
262
265
269
271
346
347
349
360
364
365
381
385
385
1
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
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
26
26
26
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
33
33
33
33
33
33
33
33
33
33
34
34
34
35
35
35
35
35
36
36
36
36
36
36
36
36
37
37
37
38
38
38
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
42
42
42
42
42
43
43
43
43
43
43
44
44
44
44
44
44
44
45
45
45
45
46
46
46
46
46
47
47
47
47
48
48
48
48
48
48
48
49
49
49
49
50
50
50
50
50
50
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
55
55
55
55
56
56
56
57
57
57
57
57
58
59
59
59
59
59
61
62
63
63
65
65
66
66
67
67
67
68
68
68
68
68
69
69
69
69
69
69
69
69
69
69
70
70
70
72
72
74
74
75
75
75
75
76
76
76
76
76
77
77
78
79
79
81
81
81
81
82
82
82
83
83
83
84
84
84
84
84
84
84
84
85
86
87
87
88
88
89
89
90
90
90
90
91
92
92
93
93
93
93
93
93
94
95
97
97
98
98
98
98
98
99
99
101
102
102
102
102
104
104
104
104
107
108
108
109
109
110
113
113
113
113
114
114
114
115
115
115
115
115
115
116
116
117
119
119
119
123
123
125
125
126
126
129
132
133
134
136
136
136
137
141
141
143
147
148
150
151
153
153
154
154
154
155
155
155
158
158
163
163
167
168
170
170
171
173
175
179
181
188
190
191
193
193
194
194
194
195
197
202
202
213
214
216
216
218
219
219
224
224
228
232
232
236
238
240
245
245
247
248
250
257
263
263
266
270
272
347
348
350
361
365
366
382
386
386
1
1
2
3
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
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
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
34
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
38
38
38
38
38
38
38
39
39
39
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
42
42
42
42
42
42
42
43
43
43
44
44
44
44
44
44
45
45
45
45
45
45
46
46
46
46
46
46
46
47
47
47
47
47
48
48
49
49
49
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
56
56
56
56
56
57
57
57
57
57
57
57
58
58
58
58
59
59
59
60
62
64
64
65
65
65
65
66
66
67
67
67
67
68
68
69
69
69
69
69
70
70
70
70
70
70
71
71
71
73
73
73
74
74
75
76
76
76
76
76
77
77
77
78
78
79
79
79
80
80
81
82
82
82
82
83
83
84
84
84
84
84
84
85
85
85
85
85
87
87
87
88
88
89
89
90
90
90
90
90
91
91
91
93
93
93
94
94
94
94
94
94
94
94
94
95
96
97
97
98
98
99
99
99
99
99
99
100
101
102
102
103
103
103
103
105
105
105
105
108
110
110
110
111
112
112
114
114
114
114
115
115
115
115
115
116
116
116
116
116
116
117
120
120
120
124
124
124
124
126
126
126
127
130
133
134
135
137
137
137
138
142
142
144
148
149
149
151
152
154
154
155
155
155
156
156
159
159
164
164
169
171
171
172
173
174
176
179
181
182
189
191
192
194
194
195
195
195
196
198
203
203
214
215
217
217
219
220
220
225
225
229
233
233
237
239
241
246
246
246
248
249
250
251
258
264
264
267
271
273
348
349
351
362
366
367
383
387
387
3
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
36
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
42
42
42
42
42
42
42
42
42
43
43
43
43
43
44
45
45
45
45
45
45
46
46
46
46
46
47
47
47
47
47
47
47
48
48
48
48
48
49
49
50
50
50
50
50
50
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
54
54
54
54
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
55
56
56
56
56
57
57
57
57
57
58
58
58
58
58
58
58
58
59
59
59
59
59
59
59
60
61
63
63
65
65
65
65
66
66
67
67
67
67
67
67
68
68
68
68
68
69
69
69
69
69
69
70
70
70
71
71
71
71
71
71
71
71
72
72
73
74
74
74
75
75
77
77
78
78
78
79
79
79
79
80
80
80
80
81
81
81
82
82
83
83
84
84
84
84
85
85
85
85
85
86
86
86
86
87
88
89
89
90
90
91
91
91
92
92
92
93
93
94
95
95
95
95
95
95
95
95
96
97
98
99
99
100
100
100
100
100
102
102
102
102
102
102
103
103
103
104
104
106
106
108
108
109
110
111
111
111
112
112
112
113
113
115
115
115
116
116
116
116
117
117
117
117
118
121
121
121
123
123
123
124
125
125
125
125
126
128
131
134
135
136
138
138
139
143
143
145
149
149
152
153
153
155
155
156
156
156
157
157
160
160
165
165
172
172
173
174
175
177
182
183
190
192
193
195
195
196
196
196
197
199
204
204
215
216
218
218
220
221
221
226
230
234
234
235
240
242
247
249
250
251
252
259
265
265
268
272
274
349
350
352
363
367
368
384
388
388
1
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
27
27
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
35
35
35
35
36
36
36
36
36
36
36
37
37
37
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
42
42
42
42
43
43
43
43
43
43
43
43
44
44
44
45
46
46
46
47
47
47
48
48
48
48
48
48
48
48
48
48
48
48
48
48
49
49
49
49
50
50
50
50
50
51
51
51
51
51
51
52
52
52
52
53
53
53
53
53
54
54
54
54
54
54
54
55
55
55
55
55
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
56
57
57
57
57
57
58
58
58
58
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
61
62
64
64
64
64
66
66
66
66
66
68
68
68
68
69
69
69
69
69
69
69
69
70
70
70
70
71
71
71
72
72
72
72
72
72
73
73
74
75
75
75
75
75
76
76
76
78
78
79
79
79
79
79
80
80
81
81
81
81
82
82
82
82
83
84
84
85
85
85
86
86
86
86
87
87
87
88
89
90
90
91
91
92
92
92
93
93
93
94
94
94
94
94
94
94
95
96
96
96
96
96
96
96
96
97
99
99
100
100
101
101
101
101
101
103
103
103
103
103
103
103
103
103
104
105
105
107
107
109
109
110
112
112
112
113
113
114
114
116
116
117
117
117
117
118
118
118
118
119
122
122
122
123
124
124
125
126
126
126
126
127
132
135
136
137
139
139
140
144
144
146
149
150
153
153
154
154
156
156
157
157
157
158
158
161
161
163
173
173
174
175
176
178
183
184
191
193
194
196
196
197
197
197
198
200
205
205
216
217
219
219
221
222
222
227
231
235
235
236
241
242
243
248
250
251
252
253
260
266
266
269
273
275
350
351
353
364
368
369
385
389
389
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
28
28
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
37
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
43
43
43
43
43
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
46
47
47
48
49
49
49
49
49
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
52
52
53
54
54
54
54
54
54
55
55
55
55
55
55
55
55
56
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
57
57
57
57
57
57
58
58
58
58
58
59
59
59
59
59
60
60
60
60
60
60
61
61
61
61
61
61
61
62
64
65
66
67
67
67
67
69
69
69
69
70
70
70
70
70
71
71
71
71
72
72
73
73
73
73
73
73
74
74
75
75
76
76
76
77
77
77
79
79
80
80
80
81
81
82
82
82
82
83
83
83
83
83
83
85
85
86
86
86
87
87
87
87
88
88
88
89
89
90
91
91
92
92
93
93
93
94
94
94
94
94
95
95
95
95
96
97
97
97
97
97
97
98
100
100
101
101
102
102
102
102
102
103
103
103
104
104
104
105
105
106
106
108
108
109
110
110
111
112
113
113
113
114
114
114
115
115
117
117
118
118
118
118
118
119
119
119
119
120
123
123
123
124
125
125
126
126
127
127
127
127
133
136
137
138
140
140
141
145
145
147
151
154
154
155
155
158
158
158
159
159
161
162
162
163
164
174
174
175
176
177
179
184
185
192
194
195
197
197
198
198
198
199
201
206
206
217
218
220
220
222
223
223
228
232
236
236
242
243
244
248
250
251
252
253
254
261
267
267
270
274
276
351
352
354
365
369
370
386
390
390
1
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
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
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
37
37
37
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
47
47
47
48
49
49
49
49
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
52
53
53
53
53
53
53
53
53
54
54
54
54
54
54
55
56
56
56
56
56
56
56
56
56
56
56
56
56
57
57
57
57
58
58
58
58
58
58
58
58
58
58
58
58
58
58
58
59
59
59
59
59
59
59
59
59
59
60
60
60
61
61
61
61
61
61
62
62
62
62
63
66
66
67
68
68
68
68
69
69
70
71
71
71
71
72
72
72
73
73
74
74
74
75
75
75
76
77
77
77
80
80
81
81
81
82
82
83
83
83
84
84
84
84
84
86
86
87
87
87
88
88
88
88
89
89
89
90
92
92
93
93
94
94
94
94
95
95
95
95
95
96
96
96
96
97
98
98
98
98
98
98
98
99
99
99
101
102
102
103
103
103
103
103
103
104
105
105
105
105
106
107
107
109
109
110
111
112
112
113
114
114
114
114
115
115
115
115
116
118
118
118
118
119
119
119
120
120
120
120
121
124
124
124
125
125
126
127
128
128
134
137
138
139
141
141
142
146
146
148
152
155
155
156
159
159
160
160
162
163
163
164
175
175
176
177
178
180
185
186
193
195
196
196
198
198
198
199
199
199
202
207
207
218
219
221
221
223
224
224
229
233
237
237
243
244
245
251
252
253
254
255
262
268
268
271
275
277
352
353
366
370
371
387
391
391
1
1
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
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
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
22
22
22
23
23
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
29
29
29
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
33
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
38
38
38
38
39
39
39
39
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
45
45
45
45
46
46
46
46
46
46
46
46
46
47
47
47
47
47
48
49
49
49
49
50
50
50
51
51
51
51
51
52
52
52
52
52
52
53
53
53
53
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
56
57
57
57
57
57
57
57
57
57
57
57
57
58
58
58
58
59
59
59
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
61
61
61
62
62
62
62
62
63
63
63
64
64
64
67
68
68
69
70
70
70
71
72
72
72
73
74
75
75
75
76
77
78
78
80
81
81
82
82
82
83
83
84
84
85
87
87
88
88
88
89
89
89
89
90
90
90
90
91
93
93
94
94
94
95
95
95
95
96
96
96
97
98
99
99
99
99
99
99
99
100
100
100
102
102
102
103
103
104
104
104
104
104
105
106
106
107
108
108
110
110
112
113
114
114
114
114
115
115
115
116
116
116
116
117
118
119
119
119
119
120
120
120
121
121
121
121
122
125
125
125
129
129
135
136
138
139
140
142
142
143
147
147
149
153
156
157
160
160
161
162
164
176
176
178
179
181
186
187
194
196
199
199
199
200
200
203
208
208
219
220
222
222
224
225
225
230
234
238
244
245
246
252
253
254
255
256
263
269
269
272
276
278
353
354
367
371
372
388
392
392
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
29
29
29
29
29
29
29
29
30
30
30
30
30
31
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
37
37
37
37
37
38
38
38
38
38
38
38
39
39
39
39
39
40
40
40
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
45
45
45
45
45
45
45
46
46
47
47
47
47
47
48
48
48
48
49
49
49
49
49
50
50
50
51
51
51
52
52
52
52
52
52
53
53
54
54
54
55
55
55
55
55
55
55
56
56
56
56
56
57
58
58
58
58
58
58
58
58
58
58
58
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
62
62
62
62
63
63
63
64
64
64
65
65
66
66
66
68
68
69
69
70
71
71
72
72
73
73
73
73
74
75
75
76
76
76
76
77
77
79
79
81
81
82
82
82
83
83
83
83
84
84
84
84
85
85
86
88
88
88
89
89
89
89
90
90
90
90
91
91
91
93
94
94
94
94
94
95
95
95
96
96
96
96
97
97
97
99
100
100
100
100
100
100
100
101
103
103
104
104
105
105
105
105
105
105
105
107
107
108
108
109
109
109
111
111
113
114
114
115
116
116
116
116
117
117
117
119
120
120
120
121
121
121
122
122
122
123
126
126
127
130
130
136
137
139
140
141
141
143
143
144
147
148
149
150
153
154
157
158
161
161
162
164
165
177
177
179
180
182
187
188
195
197
200
200
201
201
204
209
209
220
221
223
223
225
226
226
231
235
237
237
239
245
246
247
253
254
255
256
257
264
270
270
273
277
279
355
368
372
373
389
393
393
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
23
23
23
23
23
23
23
24
24
24
24
24
25
25
25
25
25
25
25
25
26
26
26
26
26
26
27
27
27
27
27
28
28
28
28
28
28
28
28
28
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
32
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
35
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
39
39
39
39
39
40
40
40
40
41
41
41
41
42
42
42
43
43
43
43
43
44
44
44
44
44
44
44
45
45
45
46
46
46
46
46
46
46
47
47
47
48
48
48
48
48
49
49
49
50
50
50
50
50
50
51
51
51
51
51
52
52
52
52
53
53
53
53
53
53
53
54
55
55
55
55
55
56
56
56
56
56
56
57
57
57
57
57
58
58
59
59
59
59
59
60
60
60
60
60
61
61
61
61
61
61
61
61
61
61
61
61
62
62
62
62
63
63
63
64
64
64
65
65
65
67
67
67
67
69
69
69
71
71
71
71
72
72
72
73
73
73
74
74
74
74
74
75
75
75
76
76
76
77
77
77
77
77
78
80
80
83
83
83
83
84
84
84
84
84
85
85
85
86
86
87
88
89
90
90
90
90
91
91
92
92
94
94
95
95
95
96
96
96
97
97
97
97
97
98
98
98
98
100
101
101
101
101
101
101
101
102
103
103
104
104
105
105
106
106
106
106
106
106
108
108
109
109
110
110
110
110
112
112
114
115
115
115
116
117
117
118
120
121
121
122
122
123
123
123
124
127
127
127
127
131
131
137
140
141
142
142
144
144
145
149
149
150
151
154
155
158
159
162
162
163
164
166
167
178
178
180
181
183
188
189
196
198
201
201
202
202
205
210
210
221
222
224
224
226
227
227
232
236
238
240
246
247
248
254
255
256
257
258
265
271
271
274
278
280
353
369
373
374
390
394
394
1
1
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
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
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
33
33
33
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
40
40
40
40
40
40
40
41
41
41
41
41
41
42
42
42
43
43
43
43
44
44
44
44
44
44
44
44
45
45
45
45
45
46
46
46
46
47
47
47
47
47
48
48
49
49
49
49
49
49
49
50
50
50
51
51
51
52
52
52
52
52
52
52
52
52
52
52
52
52
53
53
53
54
54
54
55
56
56
56
56
57
57
57
57
57
57
57
58
58
58
59
59
59
59
59
60
60
60
60
60
60
60
61
61
61
61
61
61
61
62
62
62
62
62
62
62
62
63
63
63
63
64
64
64
65
65
65
66
66
66
68
68
68
70
71
72
72
72
73
74
74
74
74
75
75
75
75
75
75
75
76
76
76
77
77
77
77
78
78
78
78
79
79
81
81
82
84
84
85
85
85
86
86
86
87
87
88
89
90
91
91
91
91
92
92
94
96
96
96
97
97
97
97
98
98
98
99
99
100
101
102
102
102
102
102
102
102
103
103
103
103
103
104
104
104
105
105
106
106
107
107
109
109
110
111
111
111
111
112
113
115
115
116
116
116
117
118
118
119
122
123
123
124
124
124
125
127
128
128
132
132
138
141
142
143
143
145
145
150
151
152
155
156
159
163
163
164
167
168
179
179
181
182
184
189
190
197
199
202
202
203
203
206
211
211
222
223
225
227
228
228
233
237
237
239
241
247
248
249
255
256
257
258
259
266
272
272
275
279
281
355
370
374
375
391
395
395
1
2
2
2
2
3
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
28
28
28
28
28
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
33
33
33
33
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
37
37
37
37
38
38
38
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
42
42
42
42
42
42
43
43
43
43
43
44
44
44
44
44
45
45
45
45
45
45
45
46
46
46
46
46
46
47
47
47
47
47
47
48
48
48
49
49
50
50
50
50
50
50
51
51
51
51
51
51
52
52
52
53
53
53
53
53
53
53
53
53
54
54
54
55
55
55
55
55
55
55
56
56
56
56
57
57
57
57
58
58
58
58
59
59
59
59
59
59
60
60
60
60
60
61
61
61
61
61
61
61
61
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
64
64
64
65
65
65
66
66
66
66
67
67
67
68
71
71
72
72
73
73
74
75
75
75
75
76
76
76
76
77
77
78
78
79
79
80
80
82
82
83
83
84
85
86
86
86
86
87
87
87
88
88
88
89
89
90
91
92
92
92
92
93
95
95
95
97
97
97
97
97
97
98
99
99
99
100
100
100
100
102
102
103
103
103
103
103
103
103
104
104
104
104
104
105
106
106
107
107
108
108
109
109
109
110
110
110
111
111
111
111
112
112
112
112
113
113
114
114
115
115
116
116
116
117
117
118
118
119
120
122
123
124
124
125
125
125
126
127
127
129
129
133
133
139
142
143
144
146
146
151
152
153
156
157
160
164
164
165
165
167
168
179
179
180
182
183
185
190
191
198
200
203
203
204
204
207
212
212
223
224
226
229
229
234
238
238
240
241
242
247
249
249
250
256
257
259
260
267
273
273
276
280
282
371
375
376
392
396
396
1
1
1
2
2
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
25
25
25
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
29
29
29
29
30
30
30
30
30
30
30
30
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
38
38
38
38
38
39
39
39
39
40
40
40
40
40
40
41
41
41
41
41
41
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
45
45
45
45
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
48
48
48
48
48
49
49
49
50
50
50
51
51
51
51
51
51
51
52
52
52
52
52
53
53
54
54
54
54
55
55
55
55
55
56
56
56
56
56
56
57
57
57
57
58
58
58
59
59
59
59
59
59
60
60
60
60
60
61
61
61
62
62
62
62
62
62
63
63
63
63
63
63
64
64
64
64
64
64
65
65
65
66
66
67
67
67
67
68
68
68
68
71
71
72
72
72
72
73
73
74
75
76
76
76
77
77
77
78
78
79
79
80
80
81
81
83
83
83
83
83
86
87
87
87
87
87
87
88
88
88
89
89
90
90
90
91
91
92
94
95
97
98
98
98
98
98
99
100
100
100
100
101
101
101
103
103
104
104
104
104
104
104
104
104
105
105
105
105
106
106
106
106
107
107
108
108
109
109
110
110
111
111
112
112
113
113
113
113
114
114
115
115
115
116
117
117
117
118
118
119
120
121
124
125
125
125
126
126
126
127
128
128
130
130
134
134
140
143
144
145
147
147
152
153
154
158
161
165
166
166
168
169
180
181
183
184
186
191
192
199
201
204
204
205
205
208
213
213
224
225
227
230
230
235
239
241
242
243
250
250
251
257
258
268
274
274
277
281
283
372
376
377
393
397
397
2
2
3
3
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
35
35
35
35
35
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
40
40
40
40
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
43
43
43
43
43
43
44
44
44
44
44
44
44
45
45
45
45
45
46
46
46
46
46
46
47
47
47
47
47
47
47
47
48
48
48
48
48
49
49
49
49
49
50
50
50
50
51
51
51
51
51
51
51
52
52
52
52
52
52
52
53
53
53
53
53
53
54
54
55
55
55
55
55
55
55
55
55
56
56
57
57
57
57
58
58
58
58
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
61
61
61
61
61
62
62
62
63
63
63
63
63
64
64
64
64
64
65
65
65
65
65
65
65
65
65
66
66
66
67
67
68
68
68
68
68
68
68
69
69
69
69
70
71
72
72
73
73
73
73
74
75
75
76
77
77
77
78
78
78
78
79
80
80
81
81
82
82
83
83
84
84
84
84
84
87
88
88
88
88
88
88
89
89
90
90
91
92
92
93
95
98
99
99
99
99
99
100
101
101
101
101
102
102
104
104
104
105
105
105
105
105
105
105
105
105
105
105
106
106
106
106
107
108
108
109
109
110
110
111
111
111
111
112
112
113
113
114
114
115
115
115
116
116
116
116
117
118
118
118
119
119
120
120
121
122
125
126
126
126
126
127
127
127
128
131
131
135
135
141
144
145
146
148
148
153
154
155
156
159
162
166
167
170
181
182
184
185
187
192
193
200
202
205
205
206
206
209
214
214
225
226
228
231
231
236
240
242
243
244
251
251
252
258
259
269
275
275
278
282
284
373
377
378
394
398
398
1
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
35
35
35
35
35
36
36
36
36
36
36
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
40
40
40
40
40
41
41
41
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
46
46
47
47
47
48
48
48
48
48
48
48
49
49
49
49
50
50
50
50
50
51
51
51
51
52
52
52
52
52
52
53
53
53
53
53
53
53
53
53
53
53
53
53
54
54
55
55
55
55
55
55
56
56
56
56
57
58
58
58
58
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
62
62
62
62
62
62
62
62
63
63
64
64
64
64
64
65
65
65
65
65
66
66
66
67
67
67
68
68
69
69
69
69
69
69
69
69
70
70
70
70
71
71
72
73
73
73
74
74
75
76
77
77
78
78
78
78
79
79
79
79
80
81
81
82
82
83
83
84
84
85
85
85
85
88
89
89
89
89
89
89
90
90
91
94
95
95
96
99
100
100
100
100
101
102
102
102
102
103
103
105
105
106
106
106
106
106
106
106
106
107
108
108
109
109
110
110
111
111
112
112
112
113
113
115
115
115
115
116
116
116
117
117
117
117
117
119
119
119
121
121
122
123
123
126
127
127
127
128
128
129
132
132
136
136
142
145
147
149
149
153
154
155
156
160
163
164
166
167
168
168
171
179
182
183
185
186
188
193
194
201
203
206
206
207
207
210
215
215
226
227
229
232
232
237
241
243
244
245
252
252
253
257
259
260
270
276
276
279
283
285
374
378
379
395
399
399
1
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
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
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
35
35
35
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
41
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
46
46
47
47
48
48
48
49
49
49
50
50
50
50
51
51
51
51
51
52
52
52
52
52
52
52
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
55
55
55
56
56
56
56
57
57
57
57
58
59
59
59
59
59
59
59
59
59
59
60
60
60
61
61
61
61
61
61
61
62
62
62
62
62
62
62
62
63
63
63
63
64
64
65
65
65
65
65
65
66
66
66
66
66
67
67
67
67
68
68
68
69
69
69
70
70
70
70
70
70
70
70
71
71
71
72
73
74
74
75
75
78
78
78
78
79
79
79
79
80
80
80
80
81
82
83
83
84
84
84
85
85
86
86
86
89
90
90
90
90
91
92
92
94
95
96
96
97
97
97
97
98
101
101
101
101
102
103
103
103
104
104
105
106
106
106
107
107
107
107
107
107
107
108
109
110
110
111
111
111
111
112
112
112
113
113
113
114
114
115
116
116
116
117
117
117
117
118
118
118
120
120
123
124
124
127
127
128
128
128
129
130
133
133
137
137
143
146
148
149
150
150
154
155
156
162
164
164
165
168
169
172
176
180
183
184
186
187
189
194
195
202
204
207
207
208
208
211
216
216
227
228
230
233
233
238
242
244
245
246
246
253
253
254
260
260
261
271
277
277
280
284
286
375
379
380
396
400
400
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
35
35
35
36
36
36
36
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
39
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
41
42
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
47
47
48
49
49
50
50
51
51
51
51
52
52
52
52
52
52
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
55
55
55
55
56
56
57
57
58
58
58
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
60
61
61
62
62
62
62
63
63
63
63
63
63
64
64
64
64
64
65
66
66
66
66
66
66
67
67
67
67
67
67
68
68
68
68
68
68
68
69
69
69
70
70
70
71
71
71
71
71
71
71
72
72
72
72
73
74
75
75
76
77
78
78
79
79
79
80
80
80
80
81
81
81
81
82
83
84
84
85
85
86
87
87
87
87
90
91
91
91
91
92
95
95
96
97
97
98
98
98
98
98
99
99
102
102
103
104
104
104
104
104
104
105
105
107
107
108
108
108
108
108
108
108
109
110
111
111
111
111
112
112
112
112
113
113
114
114
115
115
116
117
117
117
118
118
118
118
119
119
121
121
124
125
125
125
128
128
128
129
129
130
131
134
134
138
138
144
147
149
151
151
153
155
156
163
165
165
168
169
170
173
181
184
185
187
188
190
195
196
203
205
208
208
209
209
212
217
217
228
229
231
234
239
242
245
246
247
247
254
254
255
261
262
272
278
278
281
285
287
376
380
381
397
401
401
1
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
36
36
36
36
36
37
37
37
38
38
38
38
38
38
39
39
39
39
39
39
40
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
42
42
42
43
43
43
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
48
49
49
50
50
50
51
51
52
52
52
52
52
52
52
52
53
53
53
53
53
54
54
54
54
55
55
55
55
55
55
55
55
55
56
56
56
56
56
56
56
56
56
56
56
57
57
57
57
57
58
59
59
59
59
59
60
60
60
60
60
61
61
61
61
61
61
61
61
61
61
61
61
61
62
62
62
62
62
62
63
63
63
63
64
64
64
64
64
64
66
67
67
67
67
67
68
68
68
68
68
68
69
69
69
69
69
69
70
70
70
70
71
71
72
72
72
72
72
72
72
72
73
73
73
73
73
75
75
76
76
77
79
80
80
81
81
81
81
81
82
82
82
82
83
83
84
85
85
85
86
86
87
87
87
88
88
90
91
92
92
92
92
92
92
92
93
97
98
98
98
99
99
99
99
103
103
104
104
104
104
105
105
105
105
106
106
107
108
108
109
109
109
109
109
109
109
110
111
112
112
113
113
113
113
114
114
114
115
115
116
116
116
116
116
117
117
118
118
118
118
118
119
119
119
120
122
122
125
126
126
126
128
129
130
130
131
132
135
135
139
139
145
148
150
152
152
154
156
157
163
166
170
171
174
182
185
186
188
188
190
191
196
197
204
206
209
209
210
210
213
218
218
229
230
232
233
233
235
240
246
247
248
248
255
255
256
262
263
273
279
279
282
286
288
377
381
382
398
402
402
1
2
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
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
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
26
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
40
40
40
40
41
41
42
42
42
42
42
42
42
42
42
42
43
43
43
44
44
44
44
44
44
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
49
50
50
50
51
51
51
51
52
52
52
52
53
53
53
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
55
55
55
55
56
56
56
56
56
57
57
57
57
57
57
58
58
58
58
58
58
59
59
59
59
59
60
60
60
60
61
61
61
61
61
61
62
62
62
62
62
62
62
62
62
63
63
63
63
63
64
64
64
65
65
65
65
67
68
68
68
68
69
69
69
69
69
69
69
70
70
70
71
71
71
72
72
72
73
73
73
73
73
73
73
73
73
74
74
74
74
76
77
77
78
80
82
82
82
82
82
83
83
83
83
84
84
85
85
85
86
86
86
87
87
88
89
89
91
92
92
92
93
93
93
93
94
98
98
99
100
101
103
104
104
104
105
105
106
106
106
106
107
109
109
109
110
110
110
110
110
110
110
111
112
113
113
114
114
114
114
115
115
116
116
116
118
118
119
119
119
119
119
119
120
120
121
121
123
123
126
126
127
127
128
128
130
131
131
132
133
136
136
140
140
146
149
151
153
153
154
156
157
158
165
167
171
172
175
183
186
187
189
191
192
197
198
205
207
210
210
211
211
214
219
219
231
233
234
236
241
247
248
249
249
256
256
257
263
264
274
280
280
283
287
289
378
382
383
399
403
403
1
3
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
27
27
27
27
27
27
27
28
28
28
28
29
29
29
29
29
29
29
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
35
35
35
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
42
42
43
43
43
43
43
43
43
43
43
43
44
44
45
45
45
45
45
46
46
46
46
46
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
50
51
51
51
52
52
52
52
52
52
53
53
53
53
53
53
53
53
54
54
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
55
55
56
56
57
57
58
58
58
58
58
58
58
58
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
61
61
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
64
64
64
64
64
65
65
65
66
66
66
68
69
69
69
69
70
70
70
70
70
70
70
71
71
71
72
72
72
73
73
73
73
74
74
74
74
74
74
74
74
74
75
75
75
75
75
79
80
83
83
83
83
84
84
84
85
85
85
86
86
87
87
87
87
87
88
88
89
90
90
90
92
93
93
94
94
94
95
99
101
101
104
105
105
106
106
106
107
107
107
107
108
110
110
110
111
111
111
111
111
111
112
113
114
114
114
115
115
115
116
116
117
117
117
117
119
119
119
119
120
120
120
120
120
120
121
121
122
124
126
127
128
128
129
129
131
132
132
133
134
137
137
141
141
147
150
152
154
154
154
156
157
158
159
165
168
172
173
176
184
187
188
190
192
193
198
199
206
208
211
211
212
212
215
220
220
232
234
235
237
242
248
249
250
250
257
257
258
264
265
275
281
281
284
288
290
379
383
384
400
404
404
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
28
28
28
28
28
28
28
28
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
35
35
35
36
36
37
37
37
37
37
37
38
38
38
38
38
38
38
39
39
39
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
43
43
43
43
44
44
44
44
44
44
44
44
45
45
45
45
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
51
51
52
52
53
53
53
53
53
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
56
56
56
56
56
56
56
56
56
56
56
56
57
57
58
58
58
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
61
61
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
64
64
64
64
64
64
65
65
65
66
67
67
67
69
70
70
70
70
71
71
71
71
71
71
71
72
72
72
73
73
74
74
74
74
75
75
75
75
75
75
75
75
75
75
76
76
76
76
78
79
80
80
81
84
84
84
85
85
85
85
85
85
86
87
87
87
88
88
88
88
89
89
90
90
91
91
93
94
95
95
95
96
100
102
104
105
106
106
107
107
107
107
107
108
108
108
108
108
109
110
110
111
112
112
112
112
112
112
113
114
114
115
115
115
116
116
116
116
117
117
117
117
118
118
118
118
119
119
119
120
120
121
121
121
121
121
121
122
122
123
125
127
127
128
128
129
129
132
133
133
134
135
138
138
142
142
151
153
155
155
157
158
160
169
173
174
177
185
188
189
191
193
194
199
200
207
209
212
212
213
213
216
221
221
233
235
236
238
243
249
250
251
251
258
258
259
265
266
276
282
282
285
289
291
380
384
385
401
405
405
1
1
1
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
29
29
29
29
29
29
29
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
36
36
36
37
37
37
37
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
40
40
40
40
41
41
41
42
42
42
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
44
44
44
44
44
45
45
45
45
45
45
45
45
45
46
46
46
46
46
47
47
47
47
47
47
48
48
48
48
48
48
48
49
49
49
49
49
49
49
50
50
50
50
50
51
52
52
52
53
53
53
53
54
54
54
55
55
55
55
56
56
56
56
56
56
57
57
57
57
57
57
57
57
57
57
57
57
57
57
58
58
59
59
59
59
60
60
60
60
60
60
60
61
61
61
61
61
61
61
62
62
62
63
63
63
63
63
64
64
64
64
64
64
64
65
65
65
65
66
66
67
68
68
68
70
70
71
71
71
71
72
72
72
72
72
72
72
72
73
73
73
74
74
75
76
76
76
76
76
76
76
76
77
77
77
78
78
79
79
81
81
82
83
85
85
85
85
85
86
86
86
86
87
88
88
88
88
89
89
90
90
90
91
91
92
94
95
96
96
96
97
101
101
101
103
105
107
107
107
107
107
107
108
108
108
109
109
109
109
109
110
110
112
113
113
113
113
113
113
114
114
115
115
116
116
117
117
117
117
118
118
118
118
118
118
119
119
122
122
122
122
122
122
123
123
124
126
129
130
130
133
134
134
135
136
139
139
143
143
152
154
154
156
156
156
158
161
174
175
178
186
189
190
192
194
195
200
201
208
210
213
213
214
214
217
222
222
234
236
237
239
244
250
251
252
252
259
259
260
266
267
277
283
283
286
290
292
381
385
386
402
406
406
1
1
1
1
1
1
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
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
16
16
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
29
29
29
29
30
30
30
30
30
30
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
36
36
36
37
37
37
38
38
38
38
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
41
41
41
41
41
41
42
42
42
42
43
43
43
43
44
44
44
44
44
44
44
45
45
45
45
45
46
46
46
46
46
46
46
46
46
47
47
47
48
48
48
49
49
49
49
49
49
49
50
50
50
50
50
50
50
51
51
51
51
51
52
53
53
53
53
53
54
54
54
54
54
55
55
56
56
57
57
57
57
57
57
57
57
58
58
58
58
58
58
59
59
59
59
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
61
61
61
62
62
62
62
63
63
64
64
64
64
66
66
66
66
66
67
67
68
68
69
69
69
71
72
72
73
73
73
73
73
73
74
74
74
75
75
76
76
76
77
77
77
77
77
77
77
78
78
78
78
79
80
82
82
83
86
86
86
86
87
87
87
87
88
89
89
90
90
91
91
91
92
93
95
95
96
97
97
97
98
98
99
102
102
102
104
107
107
107
107
108
108
108
108
109
109
109
110
110
110
110
111
113
114
114
114
114
114
114
115
115
116
116
117
118
118
118
119
119
119
119
120
120
123
123
123
123
123
123
124
125
127
128
130
131
131
134
135
135
136
137
140
140
144
144
153
157
157
157
162
166
175
176
179
187
190
191
193
195
196
201
202
209
211
214
214
215
215
218
223
223
235
237
238
240
245
251
252
253
253
260
260
261
267
268
278
284
284
287
291
293
382
386
387
403
407
407
1
1
1
1
1
1
1
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
18
18
18
18
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
29
29
29
29
29
29
29
29
30
30
30
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
37
37
37
37
38
38
38
39
39
39
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
42
42
42
42
43
43
43
44
44
44
44
44
44
45
45
45
45
45
46
46
46
46
46
46
47
47
47
47
47
47
47
48
48
49
49
50
50
50
50
50
50
51
51
51
51
51
51
51
52
52
52
52
52
53
53
54
54
54
54
55
55
55
55
55
55
55
55
55
56
56
57
57
57
58
58
58
58
59
59
59
59
59
59
59
59
61
61
61
61
61
61
61
61
61
61
61
62
62
62
62
62
62
62
62
62
62
62
62
62
62
62
63
63
63
63
64
64
67
67
67
67
67
68
69
69
69
69
69
70
70
70
72
73
73
74
74
74
74
74
74
74
75
75
75
76
76
76
76
77
77
77
78
78
78
78
78
78
78
79
79
79
80
81
83
83
87
87
87
87
88
88
88
88
89
90
90
91
91
92
92
92
94
96
96
96
97
98
98
98
98
98
99
99
99
99
99
100
100
103
105
107
108
108
109
109
109
109
110
111
111
111
111
112
114
115
115
115
115
115
115
116
116
117
119
119
119
120
120
120
121
121
124
124
124
124
125
126
128
129
131
132
135
136
136
137
138
141
141
145
145
154
154
158
158
158
163
167
176
177
180
188
191
192
194
196
197
202
203
210
212
215
215
216
216
219
224
224
236
238
239
241
246
252
253
254
254
261
261
262
268
269
279
285
285
288
292
294
383
387
388
404
408
408
1
1
1
2
2
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
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
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
19
19
19
20
20
20
20
20
20
20
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
30
30
30
30
30
30
30
30
31
31
31
31
31
31
32
32
32
32
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
38
38
38
38
38
39
39
39
40
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
43
44
44
45
45
45
45
45
45
46
46
46
46
46
46
46
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
48
49
50
50
51
51
51
52
52
52
52
52
52
52
52
53
53
53
53
53
54
54
55
55
55
55
55
56
56
56
56
56
56
56
56
57
57
57
57
57
57
58
58
58
59
59
59
59
60
60
60
60
60
60
60
60
62
62
62
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
64
65
65
68
68
68
69
70
70
70
70
70
71
71
73
74
74
74
74
75
75
75
75
75
75
76
76
76
76
76
77
77
77
77
77
78
78
79
79
79
79
79
79
79
80
80
80
81
82
84
85
88
88
88
88
89
89
89
89
90
90
90
91
92
92
93
93
93
95
97
98
99
99
99
99
99
99
100
100
100
100
104
106
107
108
108
109
109
110
110
110
111
112
112
112
113
115
116
116
116
116
116
116
117
118
119
119
120
120
120
121
121
121
121
122
122
125
125
125
125
126
126
127
129
129
132
133
136
137
138
142
142
146
146
155
156
159
159
164
168
168
177
178
181
189
192
193
195
197
198
203
204
211
213
216
216
217
217
220
225
225
237
239
240
242
247
253
254
255
255
262
262
263
269
270
280
286
286
289
293
295
384
388
389
405
409
1
1
1
1
1
1
1
1
1
2
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
14
14
14
14
14
14
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
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
20
20
21
21
21
21
22
22
22
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
33
33
33
33
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
39
39
39
39
39
40
40
41
41
41
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
45
45
45
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
48
48
48
48
48
49
49
49
49
49
49
49
49
49
50
51
52
52
52
53
53
53
53
53
53
53
53
54
54
54
54
54
55
56
56
56
57
57
58
58
58
58
58
58
58
59
59
59
59
59
60
60
60
60
61
61
61
61
61
61
61
61
63
63
63
63
64
64
64
64
64
64
64
64
64
64
64
64
64
64
65
65
65
65
65
65
65
65
66
66
69
69
69
70
70
71
72
72
74
75
75
76
76
76
76
76
76
77
77
77
78
78
78
79
79
80
80
80
80
80
80
80
81
81
81
81
83
83
85
85
86
86
88
88
89
89
89
89
90
90
90
90
91
91
91
91
92
93
93
93
93
94
94
94
96
98
99
99
100
100
100
100
101
102
105
107
107
109
110
111
111
111
113
113
113
114
114
116
117
117
117
117
117
117
118
118
119
119
120
120
121
121
121
121
121
122
122
122
122
123
123
126
126
126
126
127
127
128
128
130
133
134
137
138
139
143
147
147
154
156
156
160
160
165
169
169
178
179
182
190
193
194
196
198
199
204
205
212
214
217
217
218
218
221
226
226
238
240
241
243
248
255
256
263
263
264
270
271
281
287
287
290
296
385
390
406
410
1
1
1
1
1
1
1
1
1
1
2
2
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
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
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
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
16
16
16
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
20
20
21
21
21
22
22
22
22
22
22
22
22
23
23
24
24
24
24
24
24
24
25
25
25
25
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
29
29
29
29
29
30
30
30
30
30
30
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
33
33
33
33
34
34
34
34
35
35
35
35
35
35
35
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
40
40
40
40
40
41
41
41
42
43
43
43
43
43
43
43
44
44
44
44
44
44
44
45
46
46
46
46
47
47
47
47
47
47
47
47
48
48
48
48
48
48
49
49
50
50
50
50
50
50
50
51
52
53
53
53
53
53
54
54
54
54
54
54
54
54
55
55
55
55
55
56
57
57
58
58
58
59
60
60
60
60
60
61
61
61
61
61
61
61
61
61
61
62
62
62
62
62
62
62
64
64
64
64
64
64
64
64
65
65
65
65
65
65
65
66
66
66
66
66
66
67
67
70
70
70
71
72
73
73
76
76
77
77
77
77
77
77
77
78
78
78
79
79
79
80
81
81
81
81
81
81
81
82
82
82
82
84
86
86
86
88
88
88
89
89
90
90
90
90
91
91
91
91
91
92
92
92
93
94
94
94
95
95
97
99
100
101
101
101
102
102
105
106
107
108
108
110
110
111
112
112
114
114
114
115
115
117
118
118
118
118
118
118
119
119
120
120
120
121
121
122
122
122
123
123
123
123
124
124
127
127
127
127
128
128
129
129
131
134
135
138
139
140
144
148
148
156
157
161
161
163
166
168
170
170
179
180
183
191
194
195
197
199
200
205
206
213
215
218
218
219
219
222
227
227
241
242
244
249
256
264
264
265
271
272
282
288
291
297
386
391
407
411
1
1
1
1
1
2
2
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
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
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
13
13
13
13
14
14
14
14
14
14
14
14
15
15
15
15
15
16
16
16
16
16
16
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
20
20
20
20
21
21
21
21
21
21
21
21
22
22
22
22
23
23
23
23
23
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
30
30
30
30
31
31
31
31
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
35
35
35
36
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
40
40
41
41
41
41
41
41
41
41
42
42
42
42
42
42
43
43
44
44
44
44
45
45
45
45
46
46
47
47
47
48
48
48
48
48
49
49
49
49
50
50
51
51
51
51
51
51
52
53
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
55
56
56
56
56
56
56
56
58
59
60
61
61
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
64
64
65
65
65
65
65
66
66
66
66
66
66
67
67
67
67
67
71
71
71
72
73
74
74
77
77
78
78
78
78
78
78
79
79
79
80
80
81
81
82
82
82
82
82
82
82
83
83
83
83
87
87
88
88
89
90
90
91
91
91
91
92
92
92
92
92
93
93
94
95
95
96
96
98
100
101
102
102
102
103
106
107
109
109
109
111
111
113
113
115
115
115
116
116
118
119
119
119
119
119
119
119
120
120
120
121
123
123
124
124
124
125
125
127
128
128
128
128
128
129
129
130
130
132
135
136
139
140
141
145
149
149
158
162
164
167
169
171
180
181
184
192
195
196
198
200
201
206
207
214
216
219
219
220
220
223
228
228
242
243
245
250
257
265
265
266
272
273
283
289
292
298
387
392
408
412
1
1
1
2
2
2
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
19
19
19
19
19
19
19
20
20
20
20
20
21
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
31
31
32
32
32
32
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
37
37
37
38
38
38
38
38
38
38
38
39
39
39
39
39
39
40
40
40
40
40
40
41
41
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
44
45
45
45
46
46
46
46
47
47
48
48
48
49
49
49
49
50
50
50
50
51
51
52
52
52
52
52
52
52
53
54
54
54
55
55
55
55
56
56
56
56
56
56
56
56
56
56
56
56
57
57
57
57
57
57
57
57
58
58
58
58
60
61
62
63
63
63
63
63
63
63
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
64
65
66
66
66
67
67
67
67
67
67
68
68
68
68
68
72
72
72
72
73
74
75
75
77
77
78
78
79
79
79
79
79
79
80
80
80
81
81
82
82
83
83
83
83
83
83
83
83
84
84
84
84
88
88
91
91
92
92
92
92
93
93
93
94
95
96
96
97
97
99
101
102
103
103
103
104
106
108
108
109
110
110
110
110
111
112
112
114
114
114
116
116
116
117
117
119
120
120
120
120
120
120
121
121
122
124
124
125
125
125
126
126
128
129
129
129
129
129
129
129
130
131
131
133
136
137
140
141
142
146
150
150
159
163
165
165
168
170
172
181
182
185
193
196
197
199
201
202
207
208
215
217
220
220
221
221
224
229
229
243
244
246
251
258
266
266
267
273
274
284
290
293
299
388
393
409
413
2
2
2
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
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
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
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
20
20
21
21
21
21
22
22
22
22
23
23
23
23
23
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
26
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
32
32
32
33
33
33
33
33
33
33
33
33
34
34
34
34
34
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
37
37
37
38
38
38
39
39
39
39
39
39
40
40
40
40
40
41
41
41
41
41
41
41
42
42
42
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
44
44
45
45
46
46
46
46
47
47
47
47
47
48
48
48
48
49
49
49
49
49
49
50
50
50
50
51
51
51
51
51
51
52
52
52
53
53
53
53
53
53
53
54
54
55
55
56
56
56
56
57
57
57
57
57
57
57
57
57
58
58
58
58
59
59
59
59
59
59
61
62
63
63
64
64
64
64
65
65
65
65
65
65
65
65
65
65
65
65
65
65
65
67
67
67
67
68
68
68
68
68
69
69
69
69
73
73
73
74
74
74
75
76
77
78
79
79
80
80
80
80
80
80
81
81
81
82
82
82
83
84
84
84
84
84
84
84
84
84
85
85
85
89
89
92
92
93
93
93
94
94
95
96
97
98
100
102
103
104
104
104
105
106
108
109
110
110
110
111
111
111
112
113
115
115
115
117
117
117
118
118
120
120
121
121
121
121
121
121
122
123
125
126
126
126
127
127
129
130
130
130
130
130
130
131
131
132
132
134
137
138
141
142
143
147
151
151
160
164
166
166
169
170
172
173
182
183
186
194
197
198
200
202
203
208
209
216
218
221
221
222
222
225
230
244
245
247
252
259
267
267
268
274
275
285
291
294
300
389
394
410
414
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
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
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
12
12
12
12
12
12
12
12
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
16
16
16
16
16
16
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
21
21
21
21
22
22
22
22
22
23
23
23
23
23
23
23
23
24
24
24
24
25
25
26
26
26
26
26
26
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
33
33
33
33
34
34
34
34
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
38
38
39
39
39
40
40
40
40
40
40
41
41
41
41
41
41
42
42
42
42
42
42
42
42
43
43
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
46
46
47
47
47
47
47
47
47
48
48
48
48
49
49
49
49
49
50
50
50
50
50
51
51
51
52
52
52
52
52
53
53
53
54
54
54
54
54
54
54
54
55
55
56
56
56
56
57
57
57
57
58
58
58
58
58
58
59
59
59
59
59
59
59
59
59
60
61
62
62
63
64
65
65
65
65
65
65
65
65
65
65
66
66
66
66
66
66
66
68
68
68
68
69
69
69
69
69
70
70
70
70
70
70
74
74
75
75
75
75
75
76
77
79
80
80
81
81
81
81
81
81
82
82
82
83
83
83
84
85
85
85
85
85
85
85
85
86
86
86
86
90
90
91
93
94
94
94
94
95
95
96
97
98
99
99
99
100
100
100
101
103
104
105
105
106
110
111
111
112
112
112
114
116
116
116
118
118
118
119
119
121
121
121
122
122
122
122
122
123
124
126
127
127
127
128
128
129
130
130
131
131
131
131
131
131
132
132
133
133
135
138
142
143
144
148
152
161
165
166
166
167
170
170
172
173
174
183
184
187
195
198
199
201
203
204
209
210
217
219
222
223
226
231
245
246
248
253
253
260
268
268
269
275
276
286
292
295
301
390
395
411
415
1
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
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
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
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
14
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
33
33
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
38
38
38
39
39
39
39
39
40
40
40
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
47
47
47
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
50
50
50
50
50
51
51
51
52
52
52
53
53
53
53
53
54
54
54
55
55
55
55
55
55
55
55
55
56
56
57
57
57
57
57
57
57
57
58
58
58
58
59
59
59
59
59
59
59
60
60
60
60
60
60
60
61
62
62
62
63
63
63
63
63
64
64
65
65
66
66
66
66
66
66
66
66
66
67
67
67
67
67
67
67
69
69
69
69
70
70
70
70
71
71
71
71
71
71
75
75
75
75
76
76
76
77
78
80
81
82
82
82
82
82
82
83
83
83
84
84
84
85
86
86
86
86
86
86
86
86
87
87
87
89
91
91
92
92
92
94
94
95
95
95
95
96
96
96
97
98
99
99
100
100
100
101
101
101
102
102
102
104
105
106
106
107
111
112
112
113
115
117
117
117
119
119
119
119
120
121
122
122
123
123
123
123
123
124
125
127
128
128
129
129
130
130
131
132
132
132
132
132
132
133
133
134
136
139
143
144
145
149
153
162
166
166
166
167
168
171
173
174
184
185
188
196
199
200
202
204
205
210
211
218
220
223
224
227
232
246
247
249
254
256
261
269
269
270
276
277
287
293
296
302
391
396
412
416
1
1
1
1
1
1
1
1
1
1
1
1
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
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
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
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
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
24
24
24
24
24
25
25
25
25
26
26
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
32
32
33
33
33
33
33
33
33
33
33
33
33
33
34
34
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
39
39
39
39
39
39
40
40
40
40
41
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
47
47
47
47
48
48
48
48
48
48
49
49
49
49
49
50
50
50
50
51
51
51
52
52
52
53
53
54
54
54
54
55
55
56
56
56
56
56
56
56
57
57
57
58
58
58
58
58
58
58
58
58
58
58
59
59
59
59
59
60
60
60
60
60
60
60
60
60
61
61
61
61
61
62
62
62
62
63
63
64
64
64
64
64
64
65
65
65
66
66
66
66
66
66
67
67
67
67
67
67
67
68
68
68
68
68
68
70
70
71
71
71
71
71
72
72
72
76
76
76
77
77
77
78
79
82
82
83
83
83
83
83
83
84
84
84
85
85
86
87
87
87
87
87
88
88
89
89
90
92
92
92
92
92
93
93
94
95
95
96
96
96
97
97
97
98
99
100
100
100
100
101
101
101
101
102
103
103
103
103
103
105
106
107
107
108
112
114
115
117
118
118
118
119
120
120
120
120
121
121
122
123
124
124
124
125
126
128
129
129
130
130
131
132
133
133
133
134
135
137
140
144
145
146
150
154
163
167
167
168
172
174
185
186
189
197
200
201
203
205
206
211
212
219
221
224
225
228
233
247
248
250
255
262
270
270
271
277
278
288
294
297
303
388
392
397
407
413
417
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
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
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
15
15
15
15
15
15
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
33
33
33
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
40
40
40
40
41
42
42
42
42
43
43
43
43
43
43
43
43
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
48
48
48
48
48
49
49
49
49
50
50
50
51
51
51
52
53
54
54
55
55
55
55
56
56
56
56
57
57
57
57
57
57
57
57
58
58
58
58
58
59
59
59
59
59
59
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
62
62
62
62
62
62
63
64
64
64
64
65
65
65
65
65
66
66
66
66
66
66
66
66
67
67
67
67
68
68
68
68
68
68
68
69
69
69
69
69
69
71
71
71
72
72
72
72
73
73
73
77
77
77
78
79
80
82
83
83
84
84
84
84
84
84
84
85
85
85
86
86
87
88
88
88
88
89
89
89
90
92
93
93
93
93
94
96
97
97
97
98
98
99
100
100
100
101
101
101
101
102
102
102
103
103
103
104
104
104
106
107
108
108
109
110
113
115
115
117
118
119
119
119
120
121
121
121
121
122
124
125
125
125
126
127
129
130
130
131
131
132
134
134
135
136
138
141
145
146
147
151
155
164
168
168
173
186
187
190
198
201
202
204
206
207
212
213
220
222
225
226
229
234
248
251
256
263
271
271
272
278
279
289
295
298
304
388
389
393
398
408
408
414
418
1
1
1
1
1
1
2
3
3
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
16
16
16
16
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
23
23
23
23
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
33
33
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
40
40
40
40
40
40
40
41
41
41
42
42
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
48
48
48
49
49
50
50
51
51
52
52
54
54
55
55
56
56
56
56
57
57
57
57
57
57
58
58
58
58
58
58
58
59
59
59
59
59
60
60
60
60
60
60
61
61
61
61
61
61
62
62
62
62
62
62
62
63
63
63
65
65
65
65
65
65
65
66
66
66
66
66
67
67
67
67
67
68
68
68
68
68
69
69
69
70
70
70
70
70
70
72
72
73
73
73
73
74
74
78
78
79
80
80
81
83
84
84
84
85
85
85
85
85
85
85
86
86
86
87
87
88
89
89
89
89
90
90
94
94
97
98
98
98
99
99
100
101
101
102
102
102
103
103
104
105
105
105
106
107
108
109
109
110
111
112
112
114
116
117
117
118
119
120
120
122
122
122
123
125
126
126
126
127
128
129
130
131
131
132
132
135
135
136
137
139
142
146
147
148
152
156
165
169
170
174
187
188
191
199
202
203
205
207
208
213
214
221
223
226
227
230
235
249
257
264
272
272
273
279
280
290
299
305
390
394
409
415
419
1
1
1
1
1
2
2
2
2
2
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
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
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
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
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
23
23
23
23
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
33
33
33
33
33
34
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
39
39
39
39
39
40
40
40
40
40
41
41
41
41
41
41
41
41
42
42
42
42
42
43
43
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
48
48
49
49
49
49
50
50
50
50
51
52
52
53
53
54
55
55
55
56
56
57
57
57
57
57
57
57
57
58
58
58
58
58
58
58
59
59
59
59
59
59
59
59
60
60
60
60
60
61
61
61
61
61
62
62
62
62
62
62
63
63
63
63
63
63
64
64
64
65
65
65
65
65
66
66
66
66
66
66
67
67
67
68
68
68
68
68
69
69
69
70
70
70
71
71
71
71
71
72
72
73
73
74
74
74
75
75
75
79
79
80
80
81
81
82
82
84
84
84
85
85
85
86
86
86
86
86
86
86
87
88
88
88
88
89
90
90
90
90
91
91
93
93
95
95
98
99
99
99
100
100
101
102
102
102
103
103
103
104
104
104
105
106
106
108
109
110
110
111
112
112
113
113
115
117
117
118
119
121
121
121
121
122
123
123
124
124
124
124
124
126
127
127
127
127
127
128
129
129
130
130
131
131
132
133
133
133
133
136
136
137
138
140
147
148
149
151
151
153
155
155
157
161
161
164
164
166
166
170
170
171
172
175
188
189
192
200
203
204
206
208
209
214
215
221
221
222
222
222
224
224
224
225
225
227
228
229
229
231
236
238
242
250
258
265
273
273
274
280
281
287
287
291
293
295
306
391
395
410
420
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
3
3
3
3
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
15
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
17
18
18
18
18
18
18
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
22
22
22
22
22
22
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
27
27
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
31
31
31
31
32
32
32
32
32
32
32
32
33
33
33
34
34
34
34
34
35
35
35
35
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
39
39
39
40
40
40
41
41
41
41
42
42
42
42
42
42
42
43
43
43
43
44
44
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
47
47
47
47
47
47
48
48
48
48
48
49
49
49
49
50
50
50
50
50
51
51
52
53
53
54
54
55
56
56
57
57
57
57
58
58
58
58
58
58
58
58
59
59
59
59
59
59
60
60
60
60
60
60
60
60
61
61
61
62
62
62
62
62
63
63
63
63
64
64
64
64
64
64
65
65
65
65
65
66
66
66
66
67
67
67
67
68
68
69
69
69
70
70
71
71
71
71
72
72
72
72
72
73
74
75
75
75
75
75
76
76
76
80
80
81
81
82
83
85
85
86
86
87
87
87
87
87
87
88
89
89
89
90
91
91
91
91
92
92
94
96
96
99
100
100
100
101
101
102
103
103
104
104
105
105
107
107
109
110
110
111
111
112
113
113
115
116
117
118
118
121
121
122
122
122
123
124
124
125
125
125
127
128
128
128
128
129
130
130
130
130
131
131
132
132
133
134
134
134
137
137
138
139
141
148
149
150
152
154
156
158
162
164
165
166
166
167
170
171
171
172
173
176
189
190
193
201
204
205
207
209
210
215
216
222
223
223
225
225
226
228
229
230
232
237
243
251
259
266
274
274
275
281
282
288
296
307
392
411
421
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
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
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
18
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
23
23
23
23
23
24
24
25
25
25
25
25
26
26
26
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
36
36
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
40
40
40
40
41
41
41
41
41
41
41
42
42
42
42
42
43
43
43
43
43
44
44
44
44
45
45
45
45
46
46
46
46
46
46
46
46
46
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
50
50
50
50
51
51
51
51
52
52
52
52
53
53
53
54
54
55
55
57
57
57
58
58
58
58
58
58
58
59
59
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
61
61
61
61
61
61
61
61
62
62
63
63
63
63
63
64
64
64
64
65
65
65
65
65
65
65
66
66
66
66
66
67
67
67
67
67
67
67
68
68
69
69
69
69
70
70
70
70
70
70
71
71
71
71
71
71
71
71
72
72
72
72
72
72
73
73
73
73
73
73
73
74
75
75
76
76
76
76
77
77
77
81
81
82
83
84
85
85
86
86
86
86
86
86
86
87
88
88
88
88
88
88
89
90
90
90
91
92
92
92
92
93
93
95
96
96
97
97
97
97
100
100
100
101
101
101
101
101
102
102
103
103
104
105
105
106
106
106
108
108
110
111
111
112
112
112
113
115
117
117
118
119
119
119
122
122
122
123
123
123
123
123
123
123
124
125
125
126
126
126
128
129
129
129
129
129
130
130
131
131
131
131
132
132
132
132
132
132
133
133
134
135
135
135
138
138
139
140
142
149
150
151
153
155
157
159
163
166
166
167
168
170
172
173
174
177
190
191
194
202
205
206
208
210
211
216
217
223
224
224
226
226
227
229
230
231
233
238
244
252
260
267
275
275
276
282
283
289
297
308
393
412
422
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
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
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
24
24
24
24
25
25
25
26
26
26
26
26
26
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
36
36
36
36
36
36
37
37
37
37
37
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
42
42
42
42
43
43
43
43
43
43
43
44
44
44
44
44
44
44
45
45
45
45
46
46
46
47
47
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
51
51
52
52
52
52
52
52
53
53
53
53
54
54
55
55
56
56
56
56
56
56
57
57
58
58
58
59
59
59
59
59
59
59
59
59
60
60
60
60
60
60
60
60
61
61
61
61
62
62
62
62
62
63
63
63
63
64
64
64
65
65
65
65
65
66
66
66
66
66
67
67
67
67
67
67
68
68
68
68
69
69
70
70
70
70
70
71
71
71
71
71
72
72
72
72
73
73
73
73
73
74
74
74
74
74
75
76
76
77
77
77
78
78
78
82
83
84
85
86
87
87
87
87
88
89
89
90
90
90
90
91
91
91
92
93
93
93
93
93
93
94
94
95
95
95
96
97
97
97
98
98
100
100
100
100
101
101
101
101
101
102
102
102
103
103
103
103
104
104
105
106
106
107
107
109
110
110
110
112
112
113
113
114
117
118
120
120
120
121
121
122
122
122
123
123
124
124
124
125
126
127
127
127
128
128
129
130
130
130
130
130
131
132
132
132
133
133
133
133
134
134
135
136
139
139
141
143
151
152
154
158
160
164
164
167
168
169
171
173
174
175
178
191
192
195
203
207
209
212
218
224
225
227
228
230
231
232
239
245
253
261
268
276
277
284
290
298
309
394
413
423
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
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
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
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
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
26
26
26
26
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
42
42
42
42
43
43
43
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
45
46
46
46
46
47
47
47
47
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
52
52
52
52
53
53
53
53
53
53
54
54
54
54
55
55
55
55
56
57
57
57
57
57
57
57
57
58
58
58
58
58
58
59
59
59
59
59
60
60
60
60
60
60
60
60
60
60
60
60
60
61
61
61
61
61
61
61
61
61
62
62
62
62
62
63
63
63
63
63
63
63
64
64
64
65
65
65
65
65
65
65
66
66
66
66
66
66
66
66
66
67
67
67
67
67
67
67
67
68
68
68
68
68
69
69
69
69
69
69
69
70
70
71
71
71
71
71
71
72
72
72
72
73
73
73
73
74
74
74
74
75
75
75
75
75
75
75
75
76
77
78
78
78
78
78
79
79
79
81
83
84
85
85
86
86
87
87
88
88
88
88
89
90
90
90
91
91
91
92
92
92
92
93
93
93
94
94
94
94
94
95
95
95
96
96
97
98
98
99
99
100
100
101
101
101
102
102
102
103
103
103
103
103
103
103
104
104
104
104
105
105
106
106
107
107
108
108
110
111
111
112
113
113
113
114
115
115
117
119
120
121
121
121
122
122
123
123
124
124
125
125
125
126
127
128
128
128
129
129
130
130
131
131
131
131
131
132
133
133
133
134
134
134
135
135
136
137
140
140
142
144
152
153
155
159
161
165
165
166
166
168
169
170
170
172
174
176
179
192
193
196
204
208
210
213
219
225
226
228
229
231
232
233
240
246
254
262
269
277
278
285
291
299
310
395
414
424
1
1
1
1
2
2
2
2
2
2
2
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
10
10
10
10
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
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
37
37
37
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
43
43
43
43
44
44
44
44
44
44
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
47
47
47
47
47
47
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
49
49
50
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
52
52
52
52
52
52
53
53
53
54
54
54
54
54
55
55
55
55
55
56
56
56
56
56
57
57
57
58
58
58
58
58
58
59
59
60
60
60
60
61
61
61
61
61
61
61
61
61
61
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
64
64
64
64
64
64
64
65
65
65
66
66
66
66
66
66
66
67
67
67
67
67
68
68
68
68
68
68
68
69
69
69
69
69
69
69
70
70
70
70
70
70
70
71
72
72
72
73
73
73
73
74
74
74
74
75
75
75
75
76
76
76
76
76
76
77
78
79
79
79
80
80
80
81
82
84
85
85
86
86
86
87
88
88
89
89
89
89
90
91
91
92
92
93
93
93
93
94
94
95
95
95
95
96
96
97
98
99
100
100
101
101
102
103
103
104
104
104
104
104
104
105
105
105
106
106
107
108
108
109
109
111
112
113
113
114
114
114
115
116
118
120
121
122
122
124
125
125
126
126
126
127
128
129
129
129
131
132
132
132
132
132
133
134
135
135
135
136
136
137
138
141
141
143
145
153
154
156
160
162
166
167
169
171
173
175
177
180
193
194
197
205
209
211
214
220
226
227
229
230
232
233
234
241
247
255
263
270
278
279
286
292
300
311
396
415
425
2
2
2
2
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
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
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
23
23
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
28
28
29
29
29
29
29
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
37
37
37
37
37
37
37
38
38
38
38
38
38
38
38
38
39
39
39
39
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
44
44
45
45
45
46
46
46
46
46
46
47
47
47
47
47
47
47
47
48
48
48
48
48
48
48
48
48
48
49
49
50
50
50
50
50
50
50
51
51
51
51
51
51
51
51
52
52
52
52
52
52
52
53
53
53
53
53
53
54
54
54
54
55
55
55
55
55
55
56
56
56
56
56
56
57
57
57
57
58
59
59
59
59
59
60
61
61
61
62
62
62
62
62
62
62
62
62
63
63
63
63
63
63
63
63
63
63
63
64
64
64
64
64
65
65
65
65
65
65
66
66
67
67
67
67
67
68
68
68
68
69
69
69
69
69
69
69
69
69
70
70
70
70
70
70
70
71
71
71
71
71
71
72
73
73
73
74
74
74
74
75
75
75
76
76
76
76
77
77
77
77
77
77
78
78
79
80
80
80
81
81
81
82
85
86
86
87
87
89
90
90
90
90
91
92
92
93
93
94
94
94
95
96
96
96
96
97
97
98
99
100
101
101
102
102
103
104
105
105
105
105
105
106
106
106
106
107
107
108
109
109
110
110
112
113
114
115
115
116
117
119
121
123
125
126
126
127
127
127
128
129
130
130
130
132
133
133
133
133
133
134
135
136
136
136
137
138
139
142
142
144
146
154
155
157
161
163
167
168
170
172
174
176
181
194
195
198
206
210
212
215
221
227
228
230
231
233
234
235
242
248
256
264
271
279
280
287
293
301
312
397
416
426
1
1
1
4
4
5
5
5
5
7
8
8
8
8
8
8
8
8
8
9
9
9
9
10
10
10
10
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
17
18
18
18
18
19
19
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
22
22
22
23
23
24
24
25
25
26
26
26
26
26
26
26
27
27
27
27
27
27
27
28
28
28
29
31
31
31
31
32
32
32
32
33
33
33
33
33
34
34
34
35
35
35
35
35
35
35
35
36
36
36
37
37
37
37
37
37
37
37
38
38
39
39
39
40
40
41
41
41
42
42
42
42
43
43
43
43
43
43
43
43
43
44
44
44
45
46
46
47
47
48
48
49
49
49
49
49
49
50
51
51
52
52
52
52
52
53
53
53
53
53
54
54
54
54
55
56
56
56
56
57
57
57
58
58
58
59
60
63
63
63
63
64
64
64
64
64
64
64
64
64
64
65
65
66
66
66
66
68
68
69
69
70
70
70
70
70
70
70
70
71
71
71
72
72
72
72
73
74
74
75
75
75
75
76
76
76
77
77
78
78
78
78
79
79
80
81
81
82
82
86
87
88
90
91
91
91
91
92
93
93
94
95
95
95
96
97
97
97
98
98
100
101
102
102
105
106
107
107
108
108
109
110
111
111
113
116
117
118
122
124
127
128
128
128
129
130
131
131
131
134
134
134
134
135
136
137
137
138
139
140
143
143
145
147
155
156
158
162
164
168
171
177
182
195
196
199
207
211
213
216
222
228
229
231
232
234
235
236
243
249
257
265
272
280
281
288
294
302
313
398
417
427
