1
1
1
1
2
1
2
2
2
3
2
3
3
3
4
1
1
1
1
3
4
4
4
5
1
1
2
2
4
5
5
5
5
6
2
2
3
3
5
6
6
6
6
6
6
7
3
4
6
6
7
7
7
7
7
7
7
8
1
4
5
5
5
5
6
7
8
8
8
8
8
8
9
9
1
5
6
6
6
7
7
7
8
8
9
9
10
10
6
6
7
7
7
8
10
10
11
11
1
7
7
7
8
8
9
11
11
12
12
1
3
7
7
7
7
8
8
9
9
10
13
13
1
6
7
7
8
9
9
10
11
14
14
1
2
5
7
7
8
9
10
11
15
15
1
6
7
7
7
7
7
7
8
8
9
10
16
16
1
7
7
7
8
8
9
9
10
10
10
17
17
7
7
9
9
10
11
11
11
18
18
1
1
7
7
8
10
10
10
11
12
19
19
7
7
7
7
7
7
8
8
9
11
13
20
20
1
1
1
7
7
8
8
9
9
10
10
10
14
21
21
2
7
7
7
9
9
10
11
11
15
22
22
1
3
7
7
7
7
7
8
8
8
10
10
10
11
16
23
23
2
4
7
7
8
8
9
9
9
9
9
10
10
11
17
24
24
3
7
7
9
9
10
10
11
11
11
11
18
25
25
25
25
7
7
7
7
7
7
7
7
8
8
10
10
10
10
10
11
19
26
26
26
26
8
9
9
10
10
10
10
11
20
27
27
27
27
1
1
7
7
10
10
10
11
11
11
11
21
28
28
28
28
1
7
8
9
9
9
10
10
10
10
11
11
11
12
12
22
29
29
1
2
8
8
9
10
11
11
12
12
13
13
23
30
30
1
3
9
10
10
11
12
13
14
14
24
31
31
2
4
9
9
10
10
10
10
11
11
12
13
13
14
25
32
32
3
8
8
9
9
10
10
11
11
12
12
13
13
14
26
33
33
9
9
9
10
10
10
10
11
12
12
13
13
13
14
14
27
34
34
1
8
10
10
11
11
12
12
12
13
13
13
13
14
14
14
28
35
35
1
2
11
12
12
14
14
14
14
14
15
29
34
34
36
36
2
3
12
12
12
12
12
13
13
15
16
30
35
35
37
37
3
4
9
9
12
12
13
13
14
16
16
17
31
36
36
38
1
9
9
9
12
12
12
12
13
13
14
14
16
17
17
32
37
37
39
2
9
12
13
13
13
13
14
14
15
15
16
16
17
33
38
40
1
3
14
14
14
14
14
17
17
17
18
34
39
41
2
4
14
14
14
15
16
17
17
18
19
32
35
39
40
42
3
13
13
13
14
14
15
15
15
15
17
17
19
19
20
20
33
40
41
43
13
14
14
14
16
16
16
19
20
20
20
20
34
41
42
42
44
44
13
13
14
14
15
16
17
17
17
17
17
19
19
20
35
42
43
43
45
45
14
14
15
16
16
17
20
20
21
43
44
44
46
46
1
15
15
16
16
17
21
22
44
45
45
47
47
1
15
15
16
16
16
19
22
23
45
48
48
1
16
16
16
16
17
19
20
22
23
46
49
49
1
16
16
16
17
17
18
20
22
23
47
50
50
1
15
15
15
16
18
18
22
22
23
48
51
51
1
1
2
16
16
16
16
19
19
19
23
23
49
52
52
1
3
16
16
16
16
17
17
20
20
22
50
53
53
2
4
15
15
16
16
17
18
18
22
22
22
23
51
54
54
3
16
16
16
16
16
16
16
16
16
18
19
19
23
23
23
52
55
55
16
16
16
16
17
17
17
19
20
20
22
22
22
22
22
53
56
56
1
15
16
17
17
18
18
18
22
23
23
23
23
23
23
23
54
57
57
1
2
18
18
19
20
20
23
24
24
55
56
56
58
58
2
3
16
18
18
18
19
19
25
25
56
57
57
59
59
3
4
16
17
18
19
19
19
20
25
26
26
57
58
58
60
1
16
16
16
16
19
19
19
19
20
20
21
25
25
26
58
59
59
61
2
17
18
19
20
20
20
20
20
21
21
25
26
26
26
26
59
60
62
1
3
20
21
21
21
21
21
26
26
27
58
60
61
61
63
2
4
20
21
21
21
21
21
25
27
28
59
61
62
62
64
3
19
19
19
19
21
21
21
22
22
26
28
28
29
60
63
63
65
19
19
20
21
21
23
23
25
25
28
28
28
29
29
61
64
64
66
1
20
21
21
22
22
24
24
25
26
26
26
29
29
29
29
65
65
67
1
2
22
23
23
26
29
29
30
30
64
66
66
66
68
2
3
22
23
23
23
24
24
31
31
65
67
67
67
69
3
4
22
23
23
23
23
24
28
31
32
32
66
68
68
70
1
22
22
22
23
23
24
25
28
29
31
31
32
67
69
69
71
2
22
23
23
23
23
24
25
26
28
28
29
31
32
32
70
70
72
1
3
24
24
25
29
29
32
33
71
71
73
2
4
24
25
25
25
25
33
34
34
72
72
74
3
25
25
25
25
26
31
32
32
34
35
35
35
35
73
75
24
24
24
25
25
26
26
27
29
32
32
32
35
35
69
71
74
74
76
76
24
25
25
26
26
27
27
27
28
28
31
34
70
72
75
75
77
77
25
28
31
32
34
35
71
73
76
76
78
78
1
25
27
28
31
32
34
35
36
72
74
77
77
79
79
1
24
26
26
26
27
28
29
32
34
34
35
36
37
75
80
80
26
27
28
30
35
35
37
38
76
81
81
1
1
28
28
29
31
38
77
82
82
1
26
27
27
27
28
28
28
30
34
34
37
78
83
83
26
26
28
28
28
29
35
35
37
37
37
38
79
84
84
29
29
30
38
38
38
80
85
85
1
1
1
28
30
30
31
81
86
86
1
27
27
27
27
27
28
28
28
34
34
37
82
87
87
1
2
26
26
28
28
28
29
35
35
37
37
37
38
83
88
88
1
3
28
29
29
30
38
38
38
84
89
89
2
4
27
27
27
28
28
30
30
31
34
34
37
85
90
90
3
26
26
27
28
28
28
29
35
35
37
37
37
38
86
91
91
27
27
27
28
28
28
28
28
29
29
30
35
35
38
38
38
87
92
92
1
1
5
5
5
27
29
29
30
30
31
37
37
37
37
37
38
38
88
92
92
93
93
4
4
5
5
6
6
6
26
28
28
30
30
31
37
38
38
38
38
38
89
93
93
94
94
5
7
7
7
7
29
30
30
30
34
38
39
39
90
94
94
95
95
4
6
8
8
8
8
27
30
30
30
31
34
35
40
40
91
95
95
96
5
7
9
9
27
30
31
31
32
35
40
40
41
41
92
96
97
5
5
10
10
32
32
33
41
41
93
97
98
5
7
11
11
33
33
94
98
99
1
4
4
5
5
12
12
95
99
100
1
1
5
5
5
7
13
13
96
100
101
1
5
5
6
7
14
14
97
101
102
1
5
5
5
7
7
8
15
15
98
102
103
5
5
5
5
5
7
9
16
16
16
16
30
30
40
98
103
104
5
5
6
7
7
10
17
17
17
17
27
30
30
30
30
31
40
40
104
105
7
8
8
11
18
18
18
18
27
27
30
30
31
31
32
34
35
40
105
106
1
5
9
9
12
19
19
27
31
32
32
33
34
35
38
38
92
102
106
107
5
5
7
13
20
20
30
32
33
33
38
38
90
92
93
102
103
107
108
9
9
9
14
21
21
30
30
30
31
33
40
91
93
94
104
108
109
1
1
5
5
9
9
15
22
22
27
30
30
31
40
92
94
95
105
109
110
1
1
1
9
9
9
9
9
9
10
16
23
23
27
31
32
34
93
95
96
106
110
110
111
1
5
5
9
10
11
17
22
22
24
24
32
33
94
96
97
107
110
111
112
1
7
9
11
12
18
23
23
25
33
95
97
108
112
113
1
5
9
11
12
19
24
24
25
25
26
95
98
109
113
114
1
5
7
7
10
11
11
11
20
25
26
26
27
27
28
37
97
98
110
114
115
1
1
4
5
5
7
7
7
7
7
8
8
10
11
11
12
21
23
26
26
27
27
27
27
28
28
28
29
35
37
37
97
111
115
116
5
5
7
7
8
8
9
9
10
10
11
11
12
12
13
13
13
13
24
26
26
27
27
27
28
28
28
28
29
29
29
30
34
35
37
37
38
38
88
112
116
117
1
5
5
5
6
9
9
10
11
11
12
12
12
13
13
19
25
26
26
26
27
28
28
28
29
29
29
29
30
30
30
30
30
31
34
37
38
38
87
88
89
102
102
113
117
118
1
1
4
4
4
5
6
7
7
7
7
10
10
10
12
20
26
26
27
29
29
29
30
30
30
30
30
31
31
31
31
31
34
88
89
90
102
102
103
114
118
119
1
1
4
4
5
5
7
7
7
7
7
7
7
7
8
8
8
8
10
11
12
13
13
13
21
27
28
30
30
30
31
31
31
31
32
32
89
90
91
102
102
103
104
115
119
120
1
1
1
2
4
5
5
6
7
7
8
8
8
9
9
9
9
10
10
11
12
13
13
14
14
28
29
31
32
32
33
33
90
91
92
102
102
102
103
104
116
120
121
1
3
4
4
4
4
5
5
5
7
7
7
9
9
9
10
10
10
11
11
13
15
15
29
30
33
33
34
34
91
92
93
102
102
103
103
104
117
121
122
2
4
5
5
5
6
7
7
7
7
7
8
8
8
8
8
10
10
10
10
10
11
11
13
13
15
30
31
34
34
35
35
92
93
102
103
104
104
118
122
123
3
6
7
7
7
7
7
7
8
8
9
9
9
9
9
10
10
11
11
11
12
15
15
15
31
32
35
35
36
36
92
98
104
105
119
123
124
7
7
7
7
7
7
7
7
7
8
9
9
10
10
10
10
11
11
12
12
13
13
13
15
32
33
36
36
37
37
93
99
105
120
124
125
1
7
7
7
7
7
7
7
8
8
9
9
9
10
10
10
10
10
11
11
11
13
13
14
15
15
15
27
28
33
34
35
37
37
37
38
38
93
99
121
125
126
1
2
7
7
7
8
9
9
10
11
11
11
11
11
12
13
13
14
14
15
15
15
15
15
26
27
27
28
28
29
34
35
35
36
36
37
37
38
38
38
38
39
39
85
105
122
126
127
2
3
7
7
8
9
9
10
10
10
10
10
11
12
13
15
15
15
15
15
15
16
16
16
26
26
27
28
29
29
30
30
34
35
36
37
37
37
38
38
38
38
39
39
40
40
83
84
86
105
123
127
128
3
4
8
8
9
9
9
10
10
11
12
13
13
13
14
14
14
16
17
17
17
26
27
28
29
30
30
30
31
31
34
36
37
37
38
38
39
39
40
41
84
85
87
124
128
129
1
1
8
8
8
9
9
9
9
10
11
11
12
13
14
14
15
15
17
17
18
18
26
27
28
29
30
31
31
37
37
38
39
39
40
40
41
42
85
86
88
125
129
130
1
1
2
8
9
9
10
10
10
10
10
11
12
12
12
13
13
13
13
13
13
14
14
16
17
18
18
19
26
29
30
31
34
38
39
40
41
42
43
86
87
89
126
130
131
1
3
9
9
10
10
10
10
11
11
11
11
13
14
14
14
14
15
17
17
18
18
18
19
20
30
31
37
38
39
40
41
41
42
42
43
44
87
88
90
127
131
132
2
4
9
9
9
9
10
10
11
11
11
12
12
13
13
15
16
17
18
18
19
20
20
21
21
31
38
39
40
42
42
43
43
44
45
88
89
105
128
132
133
3
11
11
11
11
11
11
11
12
12
14
16
16
17
17
17
18
19
19
20
22
22
39
40
43
43
44
44
45
46
88
99
105
106
129
133
134
9
9
10
10
11
11
11
11
12
13
13
13
13
16
16
16
17
17
17
17
17
18
19
20
20
20
20
20
23
23
40
44
44
45
45
46
47
89
100
106
130
134
135
1
10
10
10
11
11
11
11
12
12
13
13
14
14
14
14
14
17
17
17
17
17
18
20
20
20
20
21
24
24
27
28
35
37
44
45
45
46
46
46
47
48
90
100
131
135
136
1
2
9
12
12
13
13
14
14
17
17
18
18
20
21
21
22
25
25
26
27
27
28
28
29
35
37
37
38
38
44
45
46
46
46
47
47
48
49
81
106
132
136
137
2
3
10
10
12
12
13
14
14
14
14
19
19
22
22
22
26
26
26
26
27
28
29
29
30
30
34
37
38
38
45
46
47
47
47
48
48
49
50
79
81
82
106
133
137
138
3
4
12
12
12
12
13
13
14
14
14
16
19
20
20
20
20
22
23
26
27
27
27
28
29
30
30
30
31
31
34
37
46
48
48
49
49
50
51
80
82
83
134
138
139
1
1
10
10
12
12
12
12
12
14
14
14
14
15
16
17
19
19
20
20
22
22
23
24
26
27
28
28
28
29
30
31
31
37
47
49
49
50
50
51
52
81
83
84
135
139
140
1
1
2
12
12
12
13
13
14
15
15
15
16
16
16
17
19
20
20
20
20
22
22
23
24
24
25
26
29
29
29
30
31
34
50
50
51
52
53
82
84
85
136
140
141
1
2
3
10
10
12
12
12
12
15
16
16
17
17
17
20
20
20
21
22
24
24
24
24
24
26
30
30
30
31
49
51
51
51
52
52
53
54
54
83
85
86
137
141
142
2
2
3
4
12
12
12
12
13
13
15
16
16
16
16
16
19
21
22
22
22
22
22
24
25
27
29
29
31
31
31
48
50
50
52
52
52
53
53
54
55
55
84
86
106
138
142
143
3
3
4
10
14
14
14
14
14
16
16
17
17
20
20
22
22
23
23
25
26
28
30
30
32
49
51
51
53
53
54
54
55
56
56
84
100
106
107
139
143
144
4
4
5
5
14
14
14
15
15
16
16
18
18
19
22
22
23
23
23
23
26
27
29
31
31
33
50
52
52
54
54
54
56
56
57
57
86
101
107
140
144
145
5
5
6
6
10
10
10
14
14
15
15
16
16
16
17
19
19
19
19
19
19
20
22
23
23
24
24
24
27
28
30
32
34
37
53
55
55
55
57
57
58
58
86
101
141
145
146
7
7
10
14
15
15
15
16
17
17
18
20
20
22
23
24
26
26
27
27
27
28
28
29
29
31
33
33
35
37
37
54
56
56
56
58
58
59
59
107
142
146
147
1
1
8
8
16
17
17
17
18
18
18
24
24
24
25
26
26
26
27
28
29
29
30
30
34
34
34
35
36
37
55
57
57
57
59
59
60
60
107
143
147
148
9
9
9
9
14
17
17
17
18
18
18
18
22
25
25
26
26
26
27
27
27
28
29
30
30
31
31
32
34
35
35
35
35
37
37
56
58
60
60
61
61
74
144
148
149
1
10
10
10
10
14
14
14
17
17
17
18
18
18
19
19
22
23
24
24
25
26
26
26
26
27
28
28
29
30
31
31
32
35
36
36
37
38
57
59
61
61
62
62
75
76
76
145
149
150
1
11
11
14
15
17
17
17
18
18
18
19
20
20
23
26
26
26
27
27
27
28
29
30
31
34
35
37
37
37
39
58
60
62
62
63
63
76
77
77
146
150
151
1
1
1
1
1
4
4
12
12
17
17
17
17
18
18
19
20
21
24
24
25
25
26
26
27
30
31
36
38
38
40
59
61
63
63
64
64
77
78
78
147
151
152
1
1
1
1
2
2
5
5
5
5
13
13
13
18
18
18
18
18
18
19
19
22
22
24
24
25
26
26
26
26
27
27
31
37
39
39
41
60
62
64
64
64
64
65
65
78
79
79
148
152
153
1
2
3
3
14
14
14
14
17
17
18
18
18
19
19
19
19
23
23
25
26
26
27
27
28
40
40
42
61
63
65
65
65
65
66
66
79
80
80
149
154
1
2
3
4
4
4
5
15
15
15
15
17
17
17
18
18
18
19
19
20
20
20
20
25
25
26
27
28
29
41
41
43
62
64
66
66
66
66
67
81
81
101
150
152
155
3
5
6
12
16
16
18
18
18
18
18
18
18
18
18
18
19
19
20
21
21
21
21
22
22
24
25
25
25
26
26
29
29
29
29
42
44
63
65
67
67
67
68
79
102
151
152
153
156
4
5
5
13
17
17
17
17
18
18
19
19
19
19
19
19
19
19
19
19
21
21
21
21
21
21
21
21
22
23
23
24
24
24
25
25
25
25
25
26
26
26
26
26
26
29
29
29
29
34
34
43
43
45
45
64
64
66
66
68
68
68
69
81
152
154
157
5
6
6
14
18
18
19
19
19
19
20
20
20
20
20
21
22
22
23
23
23
23
24
24
24
25
25
25
25
25
25
26
26
26
26
26
26
27
28
28
29
31
31
39
41
44
44
46
46
64
65
65
66
67
67
68
68
69
69
69
70
81
153
155
158
5
5
5
15
19
19
20
20
20
21
21
21
22
23
23
24
24
25
25
26
26
26
26
26
27
27
27
28
29
29
34
34
40
42
45
45
47
47
65
66
66
67
68
68
69
69
70
70
70
71
102
107
107
154
156
159
5
6
6
16
18
20
20
21
21
21
23
23
23
24
24
24
25
27
27
28
28
28
28
28
29
29
30
30
32
34
41
43
48
48
66
66
67
67
67
68
69
69
70
70
71
71
71
72
108
108
108
108
155
157
160
5
5
5
17
18
19
20
21
21
21
21
21
22
22
22
23
24
24
24
24
25
25
26
28
28
28
28
29
29
29
29
29
29
31
31
31
32
32
44
49
49
67
67
69
70
70
71
71
71
72
72
73
108
108
109
109
156
158
161
5
5
6
6
6
6
18
19
19
21
21
22
22
22
22
23
23
23
24
24
24
25
25
25
25
26
26
27
27
29
29
29
29
29
31
31
32
32
32
34
45
50
50
68
69
70
71
71
71
72
72
73
73
74
109
110
110
157
159
162
5
5
5
5
7
7
19
21
21
21
21
22
22
23
23
23
23
24
24
24
24
25
25
26
26
26
26
27
28
32
32
46
51
51
64
64
69
70
71
71
72
72
72
73
73
74
74
75
108
108
110
158
160
163
1
1
1
8
8
8
20
22
22
23
23
24
24
24
26
27
27
28
47
52
52
62
65
65
70
71
71
72
72
73
73
73
74
74
75
75
76
109
159
161
164
1
1
1
1
5
9
9
21
21
21
23
23
23
25
29
48
53
53
63
66
66
71
72
73
73
74
74
74
75
75
76
76
76
77
77
108
110
160
162
165
1
1
1
1
1
5
8
8
9
10
22
23
24
24
24
26
29
49
54
54
64
67
67
72
73
74
74
75
75
75
76
76
77
78
78
108
109
163
164
166
1
1
5
5
5
9
9
11
21
21
21
23
23
23
24
24
25
25
27
50
55
55
65
65
73
74
75
75
75
76
76
76
77
78
79
79
110
160
164
165
167
1
10
12
12
18
20
21
21
22
22
23
23
24
24
26
26
28
51
55
55
56
56
67
67
67
74
74
76
76
76
76
77
78
79
80
80
108
111
165
166
168
1
8
11
18
18
20
20
21
21
22
22
22
23
23
23
23
23
24
24
24
25
26
26
26
27
27
27
28
28
28
29
31
52
56
56
57
57
67
74
76
76
77
77
78
79
80
81
81
108
109
166
167
169
1
8
8
8
11
12
12
18
20
21
21
21
21
22
22
22
22
23
23
23
23
23
23
24
24
24
24
24
24
24
25
25
26
26
26
26
27
27
28
28
28
28
30
31
31
31
31
53
57
57
58
62
62
71
71
71
71
76
77
78
78
78
79
80
81
82
82
110
111
167
168
170
8
9
11
11
11
12
21
21
21
22
22
22
22
22
23
23
23
23
23
23
24
24
24
24
24
24
25
25
25
25
26
26
26
26
27
27
27
28
28
28
29
29
29
31
31
31
31
31
54
58
59
60
63
63
67
71
71
72
72
78
78
79
79
79
80
81
82
83
83
102
111
111
168
169
171
1
1
12
12
13
18
20
21
21
22
22
22
22
22
23
23
23
23
23
24
24
24
25
25
25
25
26
26
26
26
26
26
26
27
28
28
29
30
30
31
31
32
55
59
60
61
64
64
68
71
71
71
71
72
73
73
79
80
80
80
81
82
83
84
84
103
103
112
112
169
170
172
5
7
12
13
13
13
18
20
21
21
22
23
23
23
23
24
25
25
26
26
26
26
26
27
27
28
28
29
29
29
31
31
31
33
56
60
61
62
64
65
65
68
68
69
71
71
72
72
72
73
80
81
81
81
82
83
84
85
85
103
111
113
113
170
171
173
1
1
1
1
1
5
5
12
12
13
16
16
20
20
20
20
20
21
21
22
24
25
26
26
26
27
27
28
29
32
32
34
49
51
57
61
62
63
63
65
66
66
69
69
70
73
73
73
81
82
82
82
83
84
85
86
86
103
111
112
114
114
171
172
174
1
1
1
1
2
2
5
5
7
12
13
13
13
14
17
17
17
17
20
22
23
23
24
26
27
33
33
35
50
51
52
58
58
62
63
65
66
67
67
67
70
70
71
74
74
82
83
83
83
84
85
85
86
87
87
112
113
172
173
175
1
1
1
1
1
4
4
5
5
5
5
7
12
13
13
13
14
14
14
15
15
15
16
16
18
18
19
23
26
26
26
27
34
36
51
52
53
63
64
65
67
68
68
68
68
71
71
72
83
84
84
84
84
85
85
86
87
88
88
113
173
174
176
1
1
1
5
5
6
6
7
12
12
12
13
13
13
14
14
14
15
15
15
15
15
16
19
19
19
19
20
23
24
24
24
26
26
26
26
26
35
35
37
37
52
53
54
60
60
64
65
68
69
69
72
72
72
74
75
84
84
85
85
86
87
88
89
89
174
174
175
177
4
4
5
5
7
7
7
13
13
13
13
13
13
14
14
15
15
15
16
16
17
19
20
20
20
20
21
21
21
21
23
27
27
27
31
33
36
36
38
38
53
54
55
55
55
58
61
61
62
65
66
69
70
70
73
73
74
75
86
86
88
89
90
90
111
175
175
176
176
178
1
5
5
5
5
5
5
7
8
8
8
13
14
15
16
16
16
17
17
17
18
20
21
21
22
24
24
24
26
32
34
37
37
39
39
53
54
55
56
56
56
59
62
62
62
63
66
67
71
71
71
73
73
87
87
89
90
91
91
103
112
177
177
179
1
1
5
5
5
7
9
9
9
9
12
13
14
14
14
15
16
17
17
17
17
17
18
18
18
18
18
19
19
19
22
22
22
22
25
26
26
27
33
35
40
40
54
55
56
57
57
57
60
63
63
64
67
67
68
68
69
71
74
88
88
90
91
92
92
113
178
178
180
4
5
5
5
5
6
7
7
7
10
10
10
10
12
13
13
14
14
14
15
15
15
16
17
17
18
18
18
18
18
18
19
19
19
19
19
19
20
20
20
21
23
23
24
25
25
25
26
26
26
28
36
41
41
55
56
57
58
58
58
61
61
63
65
69
69
74
74
74
89
89
91
92
93
93
111
114
179
179
181
5
5
5
6
7
7
8
8
11
11
13
13
13
13
15
15
16
17
17
18
18
18
19
19
19
19
19
20
20
20
20
20
21
21
21
21
21
21
22
22
22
23
24
24
25
25
25
26
28
37
42
42
56
56
57
58
59
63
64
64
66
68
70
70
75
75
78
78
90
90
92
93
94
94
103
112
114
180
180
182
4
5
5
8
9
9
12
12
12
13
14
14
14
15
15
16
16
17
17
19
19
19
19
20
20
20
20
21
21
21
21
21
21
21
22
22
23
23
23
23
25
25
26
27
28
28
38
43
43
58
58
58
58
59
60
63
65
65
65
67
69
69
71
71
78
78
78
78
79
91
91
93
94
95
95
111
113
181
181
183
1
5
5
6
6
9
9
12
13
13
13
14
14
14
15
16
17
18
18
19
19
19
20
20
20
21
21
21
21
21
21
22
22
23
23
23
23
23
24
24
24
24
24
24
25
26
26
26
26
28
39
44
44
58
58
58
59
60
61
66
66
66
68
72
72
75
78
78
79
79
80
92
92
94
95
96
96
112
114
182
182
184
1
5
5
5
5
9
9
9
9
10
13
13
14
14
15
15
15
15
16
17
17
20
20
21
21
21
22
22
23
23
23
23
24
24
24
24
25
26
27
27
27
27
28
40
45
45
53
53
56
59
59
60
61
62
62
62
62
62
67
67
67
69
73
73
75
76
76
76
76
79
80
80
93
93
95
96
97
97
115
183
183
185
1
5
5
5
5
6
6
9
9
10
11
14
15
15
16
16
17
17
18
18
21
21
21
23
23
24
24
24
24
24
24
26
26
26
26
26
28
41
46
46
51
54
54
57
58
60
60
61
62
62
62
63
63
63
68
68
68
70
74
74
77
77
78
80
94
94
96
97
98
98
112
112
112
114
114
114
116
184
184
186
5
5
5
10
11
11
12
15
15
15
16
16
17
17
18
21
21
21
22
24
26
27
27
27
29
42
47
47
52
55
55
58
59
61
61
61
62
62
62
62
62
63
63
64
64
64
68
69
69
71
75
75
75
76
76
76
76
78
78
78
78
79
95
95
97
98
99
99
115
115
115
185
185
187
1
1
5
5
6
6
6
6
9
11
13
15
15
17
17
17
17
18
18
20
21
23
24
28
28
30
43
47
47
48
48
53
56
56
59
59
60
61
62
62
62
63
63
63
63
64
64
65
70
70
72
75
75
76
76
76
77
77
78
79
80
96
96
98
99
100
100
116
116
116
186
186
188
1
1
5
5
5
5
7
7
9
9
9
11
11
11
14
16
16
17
18
18
18
18
19
21
29
29
31
44
48
48
49
49
54
54
61
61
62
63
64
64
64
64
65
66
69
69
73
76
76
76
76
77
77
78
78
80
81
97
97
99
100
101
101
187
187
189
1
1
1
1
1
8
8
8
9
10
11
11
11
12
15
17
17
17
18
18
19
19
20
22
26
28
30
30
30
32
45
49
49
50
56
58
61
62
63
64
65
65
65
65
66
67
70
70
74
76
77
78
78
81
81
98
98
100
101
102
102
188
188
190
1
4
5
9
9
11
12
13
15
16
17
17
18
18
18
18
18
19
20
20
20
22
23
24
25
26
26
26
26
29
31
31
33
46
50
51
56
59
59
59
63
64
65
66
66
67
67
67
68
75
76
78
79
79
81
99
99
101
102
103
103
112
189
189
191
1
5
5
8
8
9
10
11
12
12
12
13
13
13
13
13
15
16
16
16
17
17
17
18
18
18
18
19
19
19
20
20
20
20
21
21
21
21
22
22
23
23
23
23
24
25
25
26
27
27
30
32
32
34
47
51
51
51
52
60
61
63
65
65
66
68
68
69
76
76
76
80
80
100
100
102
103
104
104
113
114
114
190
190
192
5
5
5
5
9
9
11
11
11
12
12
12
12
13
13
13
13
14
14
14
14
14
14
16
16
17
17
18
18
18
18
18
19
19
19
19
19
19
20
20
20
20
20
20
21
22
23
24
24
24
24
24
24
24
24
25
25
26
33
33
35
48
49
52
52
52
52
53
54
57
58
61
61
62
65
66
69
69
70
74
76
77
81
81
101
101
103
104
105
105
112
115
115
189
191
191
193
1
4
4
5
10
11
11
12
12
13
13
13
13
14
14
14
14
14
14
14
15
15
15
16
16
16
17
18
18
19
19
19
19
19
19
20
20
20
20
21
21
21
21
21
21
22
23
23
25
25
27
34
34
36
49
50
53
53
53
53
54
54
55
58
59
62
62
63
66
70
70
71
78
82
82
102
102
104
105
106
106
113
114
116
116
192
192
194
1
4
4
5
8
8
10
11
13
13
14
14
15
15
15
15
15
15
15
16
16
16
16
17
18
18
19
19
19
20
20
21
21
22
22
24
24
24
25
32
34
35
37
50
50
51
54
54
54
54
55
55
56
58
59
60
63
63
64
66
71
71
72
79
83
83
103
103
105
106
107
107
115
117
193
193
195
1
1
1
4
4
4
5
5
5
8
8
8
9
11
11
12
12
13
13
15
15
15
15
16
16
16
16
18
19
19
20
20
20
21
21
21
23
23
25
25
33
35
36
36
38
38
52
52
55
55
56
56
57
59
60
61
64
64
65
65
65
72
72
73
80
84
84
104
104
106
107
108
116
116
118
194
194
196
4
4
4
5
5
5
5
5
5
5
5
6
8
9
10
11
11
11
12
12
13
16
16
17
18
18
19
19
19
20
20
20
21
22
23
24
24
24
25
26
34
36
37
37
39
39
54
55
56
57
57
59
60
61
62
64
65
66
66
66
70
73
73
74
76
81
85
85
105
105
107
107
107
108
109
116
117
119
195
195
197
1
1
5
5
5
6
6
6
7
7
11
12
12
13
13
13
13
14
15
15
15
15
15
15
16
17
17
17
18
19
19
20
20
21
23
23
23
23
23
24
24
25
25
25
27
37
38
38
40
40
47
47
54
54
55
57
57
58
60
60
61
62
62
63
66
66
71
74
74
75
76
76
77
81
82
86
86
106
106
108
108
109
110
116
117
118
120
196
196
198
4
4
5
5
6
7
7
7
7
8
8
11
12
13
13
14
15
15
15
16
16
18
18
19
19
19
20
20
20
20
20
21
21
21
22
23
23
23
24
24
25
26
26
28
38
41
41
44
45
46
48
48
49
49
54
55
56
56
56
57
58
59
62
65
65
66
66
67
75
75
76
77
77
77
81
82
83
87
87
107
107
109
109
110
111
117
118
119
197
197
199
1
1
4
5
6
7
7
9
9
9
11
11
12
12
12
13
13
14
15
17
17
17
17
17
17
18
18
18
19
20
20
20
20
21
22
22
24
24
24
24
27
27
29
39
42
42
45
46
47
47
49
49
50
50
56
57
57
57
59
59
60
60
63
63
63
66
71
76
76
77
77
77
77
77
78
82
82
84
88
88
108
108
110
110
111
112
116
118
119
198
198
200
1
1
1
4
5
5
5
7
7
7
7
10
10
10
11
12
12
13
13
13
14
14
15
15
15
16
17
17
17
18
18
18
19
20
20
20
20
20
20
20
21
21
21
21
22
22
23
24
24
25
28
28
30
40
43
43
44
46
46
47
48
48
50
50
51
51
57
58
58
58
61
61
67
67
67
77
77
78
78
78
79
82
85
89
89
109
109
111
111
112
113
119
199
199
201
1
1
1
5
6
6
6
7
7
7
7
7
7
7
7
8
9
10
10
11
11
12
12
12
13
13
13
13
13
14
14
14
15
15
15
15
16
16
16
16
17
17
17
17
17
17
17
17
18
18
18
18
19
19
19
20
20
20
20
21
21
22
22
22
22
22
23
23
24
25
25
29
31
41
44
44
45
46
47
48
48
48
49
49
50
52
52
58
59
59
59
62
62
77
77
78
78
79
79
79
86
90
90
110
110
112
112
113
114
117
120
199
200
200
202
1
5
5
5
7
7
7
7
8
8
8
8
9
10
10
11
11
12
12
12
12
12
12
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
16
16
17
17
17
17
18
18
18
19
19
19
19
19
20
20
20
20
20
20
20
20
21
21
22
22
22
22
23
24
25
25
30
30
32
32
42
45
45
46
47
48
49
50
50
50
50
50
50
50
51
53
54
55
56
59
60
60
60
63
63
66
66
78
79
79
80
87
91
91
111
111
113
113
114
115
116
118
200
201
202
203
1
5
6
6
7
8
8
9
9
10
11
11
13
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
19
19
19
19
19
20
20
21
21
21
23
23
23
23
25
26
28
31
31
33
33
43
46
46
46
46
48
49
50
50
51
51
52
52
54
54
55
56
56
57
60
60
60
61
61
64
64
67
67
77
77
79
80
80
81
88
92
92
112
112
114
114
115
116
116
119
202
203
204
1
1
5
5
5
7
7
7
7
7
8
8
8
8
8
9
10
10
14
14
15
15
15
15
15
15
16
16
16
16
17
17
17
17
17
17
17
18
18
18
18
18
19
19
20
20
21
21
22
24
27
29
32
32
34
34
44
45
45
47
47
47
47
49
50
51
52
52
52
53
54
54
54
54
55
55
56
57
57
58
61
61
61
61
61
65
65
77
77
78
78
81
81
82
89
93
93
112
113
115
115
116
117
117
120
203
204
205
1
1
1
1
1
1
1
5
5
6
6
6
6
7
7
7
7
7
7
7
7
7
8
8
8
8
9
9
10
10
10
15
15
15
15
15
15
16
16
16
16
16
17
17
18
18
18
18
18
19
19
19
19
19
20
21
23
23
23
23
25
28
30
35
35
43
45
46
46
48
48
48
48
50
51
51
53
53
53
54
54
55
55
56
56
57
58
58
59
62
66
66
67
79
79
82
82
83
90
94
94
114
116
116
117
117
118
118
120
204
205
206
1
1
1
2
5
5
5
5
7
7
7
7
8
8
8
9
9
9
10
10
10
11
11
11
14
14
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
17
17
18
19
19
19
19
20
20
21
21
22
22
23
24
24
24
24
26
31
36
36
44
46
47
47
49
49
51
52
53
54
54
54
54
54
55
56
56
57
57
58
59
59
60
63
67
67
67
71
80
80
83
83
84
91
95
95
115
116
117
117
117
118
118
119
119
205
206
207
1
3
7
7
7
8
8
8
8
9
9
10
10
10
11
11
12
13
15
15
15
16
16
16
16
17
17
17
17
17
18
18
18
19
19
20
20
20
20
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
25
25
27
32
37
37
43
45
45
47
48
48
50
50
51
51
53
53
54
54
55
55
55
55
56
58
58
58
59
60
60
61
64
68
68
72
80
80
81
84
84
85
92
96
96
116
116
117
118
118
119
119
120
120
206
207
208
2
4
5
7
7
7
7
8
8
8
8
9
9
9
10
10
10
10
10
13
15
15
16
16
16
17
17
18
18
18
18
19
19
19
19
20
20
20
21
21
22
22
22
22
23
23
24
26
26
28
33
38
38
44
45
46
46
46
48
51
51
52
52
53
53
54
54
56
56
56
56
59
59
60
61
61
61
65
65
67
69
69
72
72
77
80
81
82
85
85
86
93
97
97
117
117
117
119
119
120
120
120
121
121
207
208
209
3
5
7
7
7
7
7
7
7
8
8
8
8
8
8
9
9
9
10
10
10
10
10
10
11
11
11
14
14
16
17
17
18
18
18
18
18
19
19
19
19
20
20
21
22
22
22
22
22
22
23
24
27
27
29
34
39
39
45
46
47
48
49
50
52
52
53
53
54
55
55
57
57
57
59
66
66
66
67
68
70
70
72
78
80
81
82
83
86
86
87
94
98
98
117
117
118
120
120
120
120
121
121
121
122
122
208
209
210
1
5
5
5
7
7
7
7
8
8
8
8
9
9
9
9
10
10
10
10
10
11
11
11
11
12
12
12
12
13
14
14
15
15
15
16
16
16
17
17
17
17
18
18
18
19
19
20
20
20
20
22
22
23
23
23
25
25
27
28
30
35
40
40
44
46
47
48
48
49
50
51
51
53
53
54
54
55
56
56
58
67
68
68
68
71
71
78
81
82
83
87
87
88
95
99
119
121
121
121
121
122
122
122
123
123
209
210
211
1
1
1
7
7
8
8
9
9
9
9
9
10
10
10
10
10
10
11
11
11
12
12
12
12
12
12
12
13
13
13
14
14
14
15
15
15
15
16
16
16
16
16
16
16
17
17
17
17
17
17
17
18
18
18
19
19
19
20
20
21
22
22
24
24
26
26
28
29
29
31
31
36
41
41
43
43
45
46
46
46
48
54
54
55
55
56
57
57
57
59
61
68
72
72
82
82
82
88
88
89
96
98
98
100
120
122
122
122
122
123
124
124
210
211
212
1
2
4
8
9
9
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
16
16
16
17
17
17
17
17
17
18
18
18
18
18
18
19
19
19
19
19
19
19
20
20
20
21
22
22
23
25
25
25
27
27
29
30
30
32
32
37
41
42
42
44
44
46
47
47
48
53
55
55
56
56
57
57
58
58
62
67
67
69
73
73
83
83
89
89
90
97
99
101
117
117
121
123
123
124
125
125
211
212
213
2
3
4
5
5
5
8
8
8
8
9
10
10
10
10
10
10
11
11
12
12
12
12
13
13
14
14
14
14
14
14
15
15
15
15
15
15
15
15
16
17
17
17
17
17
17
17
18
18
18
18
19
19
19
19
19
19
20
20
20
20
20
21
21
21
22
23
24
26
26
26
28
30
31
31
33
33
35
37
38
42
42
42
43
43
44
45
45
47
48
48
48
49
53
54
56
56
56
57
58
58
59
68
68
70
74
74
80
83
83
83
83
84
90
90
91
98
100
102
118
118
120
120
120
122
124
124
125
126
126
212
213
214
1
3
4
4
5
5
5
6
6
8
8
9
9
9
10
10
10
11
11
11
11
12
12
12
12
13
13
13
14
14
14
14
15
15
15
15
15
16
16
16
16
17
17
17
17
17
17
18
18
18
18
19
19
19
19
20
21
22
22
22
24
25
27
27
29
31
34
34
36
38
39
43
43
43
44
44
45
46
46
46
49
49
50
51
51
55
57
57
57
58
60
62
68
68
68
68
69
71
72
75
75
80
81
83
83
84
84
85
91
91
92
99
101
103
121
121
121
123
123
125
126
127
127
213
214
215
1
2
4
4
5
6
7
7
8
8
8
10
10
10
11
11
12
12
12
13
13
13
14
14
14
14
15
15
16
16
16
16
17
17
17
17
17
17
18
18
19
19
19
19
20
21
21
21
23
23
25
26
28
28
30
32
35
35
35
37
37
39
40
44
44
44
44
45
46
46
47
47
51
51
52
52
56
57
57
58
58
58
58
69
69
70
72
72
76
76
81
82
84
85
85
92
92
93
100
102
104
121
122
122
124
124
126
126
127
128
128
214
215
216
1
1
2
3
4
4
5
5
5
5
5
7
8
8
8
9
9
10
10
11
11
11
11
12
12
12
12
13
13
13
14
14
14
14
14
14
14
15
15
16
17
18
19
19
19
19
19
20
20
20
20
22
23
24
24
26
29
29
31
33
36
36
36
37
38
39
40
41
41
45
46
46
47
47
47
48
49
51
52
53
53
57
58
58
59
59
68
68
70
70
73
77
77
80
82
83
85
93
93
94
101
103
105
122
122
125
127
127
128
129
129
215
216
217
1
1
2
3
4
4
4
5
5
6
6
8
8
9
9
9
11
11
12
12
12
12
12
12
12
13
13
14
14
14
14
14
14
15
15
15
15
15
16
16
16
16
17
17
17
17
18
19
19
19
19
19
20
20
21
22
23
23
23
25
25
27
28
30
30
30
32
34
37
37
37
38
39
40
41
41
42
42
46
46
47
47
48
49
49
49
49
52
52
53
54
54
58
60
60
69
74
78
78
81
83
94
95
102
104
106
126
126
128
128
129
130
130
216
217
218
1
3
4
5
6
6
7
7
8
8
9
9
9
10
10
10
10
11
11
12
12
12
12
12
12
12
12
12
12
13
13
13
13
14
14
14
14
15
15
15
15
15
16
16
16
16
16
16
16
17
17
17
17
17
17
17
18
19
20
20
20
20
20
22
22
22
26
26
26
28
29
30
31
31
31
32
33
35
38
38
39
40
41
41
41
42
42
43
43
47
48
48
49
49
49
49
49
51
53
53
53
53
54
55
55
58
59
61
61
68
68
70
75
79
79
84
103
105
107
107
127
127
129
129
129
130
131
131
217
218
219
1
2
4
7
7
7
7
8
8
8
8
9
9
10
10
10
11
11
11
11
11
12
12
12
12
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
16
16
16
17
17
17
17
17
17
18
18
18
18
18
18
18
18
19
20
22
22
27
27
29
30
31
32
32
33
34
34
36
39
39
39
39
39
40
41
42
42
42
43
43
44
44
48
49
49
50
50
54
54
54
56
56
58
60
62
62
66
68
68
69
69
76
80
80
81
81
83
83
83
83
85
103
106
108
108
130
130
130
131
132
132
218
219
220
1
2
3
7
8
8
9
9
9
10
10
10
11
11
11
12
12
12
12
12
12
12
13
13
13
13
13
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
17
17
17
17
17
17
17
17
18
18
19
19
19
20
28
28
28
30
30
30
31
32
33
33
34
34
35
35
37
40
40
40
40
40
41
42
42
42
43
43
44
44
44
45
45
49
50
50
51
51
53
53
53
53
53
53
53
53
55
55
56
56
61
63
63
67
68
68
70
70
77
81
81
83
84
84
84
107
109
109
131
131
131
132
133
133
219
220
221
1
1
1
3
7
7
7
7
7
10
10
10
10
10
10
11
11
11
11
11
11
11
12
12
12
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
15
15
15
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
18
19
19
20
20
24
26
26
29
29
29
30
31
31
31
33
33
34
34
35
35
35
36
36
38
41
41
41
41
41
42
43
43
44
44
44
44
44
45
50
51
51
52
52
53
53
54
54
54
54
62
62
64
64
67
69
69
71
71
78
81
82
82
83
85
85
85
108
110
110
132
132
132
133
134
134
220
221
222
2
4
4
8
8
8
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
14
14
14
14
14
15
15
16
16
16
16
17
17
17
17
17
17
17
17
18
18
19
19
20
20
20
25
27
27
30
30
31
32
32
32
34
34
35
35
36
36
36
37
37
38
39
42
42
42
42
42
44
44
44
45
45
46
51
52
52
53
53
53
53
53
54
55
55
55
55
58
58
63
63
65
65
69
71
71
72
79
83
83
83
84
86
109
111
111
133
133
133
134
135
135
221
222
223
1
1
3
5
5
7
9
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
16
17
17
17
17
17
17
17
18
18
18
19
19
19
19
20
26
28
28
32
33
33
33
35
35
36
36
37
37
37
38
38
39
40
42
42
42
42
43
43
44
44
45
45
45
45
46
46
47
49
52
52
52
53
53
53
53
54
54
54
54
55
59
59
63
63
64
66
66
69
71
72
73
78
80
83
84
84
84
85
86
110
112
112
121
134
134
134
135
136
136
222
223
224
1
4
7
8
8
9
9
11
11
11
11
11
11
11
11
11
11
12
12
12
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
16
16
16
16
16
17
17
17
17
18
18
19
19
19
19
19
20
29
29
33
34
34
34
36
36
37
38
38
38
39
39
40
40
41
43
43
43
43
44
44
44
46
46
47
47
47
48
49
49
50
53
53
53
53
53
53
54
54
54
54
54
55
55
63
65
67
67
71
72
73
74
79
81
81
83
85
85
85
111
113
113
122
122
122
135
135
135
136
137
137
223
224
225
4
5
5
5
7
7
7
9
9
10
11
11
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
18
19
19
19
19
19
19
20
20
20
30
33
34
35
35
35
35
35
37
38
39
39
39
40
40
41
41
41
42
44
44
44
44
45
45
47
47
47
49
50
50
51
51
53
54
54
55
55
55
55
59
66
68
68
72
73
74
80
81
82
82
83
84
86
86
86
112
114
114
122
123
123
136
136
136
137
138
224
225
226
1
4
6
6
8
10
11
11
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
17
17
17
17
17
17
17
17
17
17
18
18
18
19
19
19
20
20
20
20
31
34
35
36
36
36
36
36
37
37
38
39
40
40
40
41
41
42
42
43
44
45
45
45
45
46
46
48
48
50
52
56
56
56
56
56
59
67
69
69
73
79
79
82
83
83
84
85
86
87
87
87
113
115
115
123
123
137
137
137
138
139
225
226
227
1
1
1
1
5
5
5
11
11
12
12
12
13
13
13
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
18
18
18
18
18
19
19
19
20
22
32
35
35
36
37
37
37
37
37
38
38
39
40
40
41
41
41
42
42
43
43
45
46
46
47
47
49
49
53
56
57
57
68
70
70
79
80
84
84
85
86
86
86
87
88
88
88
114
116
116
138
138
138
139
140
226
227
228
1
5
5
6
8
8
11
12
13
13
13
13
13
13
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
16
16
16
16
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
20
20
20
22
22
22
33
36
36
37
37
38
38
38
38
38
39
39
40
41
41
42
42
42
42
42
42
43
43
45
45
45
46
46
47
47
48
48
49
50
54
58
58
69
71
71
71
85
85
87
87
87
88
89
89
115
117
117
136
137
139
139
139
140
141
227
228
229
1
5
5
5
6
6
7
8
11
11
11
12
12
12
13
13
14
14
14
14
15
15
15
15
15
15
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
20
20
20
20
20
21
22
22
34
36
37
37
38
38
39
39
39
39
40
40
41
41
42
42
43
43
43
43
43
43
44
44
44
44
45
45
46
47
47
48
48
49
49
51
55
59
59
63
70
71
72
72
72
85
85
86
86
86
88
88
88
90
90
114
118
118
138
140
140
140
141
142
228
229
230
1
1
1
5
5
6
8
8
8
8
11
11
11
11
12
12
12
13
13
13
13
13
14
14
14
14
14
15
15
15
15
15
15
15
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
19
19
19
19
20
20
20
20
20
22
35
37
38
38
38
39
39
39
40
40
40
40
40
40
42
42
43
43
43
43
44
44
44
44
44
44
45
45
45
45
45
48
48
49
49
49
49
49
49
50
50
56
60
60
63
71
72
73
73
73
87
87
87
89
91
115
117
119
119
139
141
141
141
142
143
229
230
231
1
1
6
6
7
7
8
11
11
11
12
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
15
15
15
15
15
15
15
15
16
16
16
16
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
19
19
19
19
19
19
20
20
21
21
23
23
36
36
38
38
38
38
39
39
40
40
40
40
40
40
41
41
41
41
41
43
44
45
45
45
45
45
45
45
46
46
46
46
49
49
49
49
50
50
50
50
50
51
51
51
51
53
57
61
61
67
71
72
73
74
74
74
79
85
88
88
88
90
90
92
118
120
120
140
142
142
142
143
144
230
231
232
1
1
1
1
1
2
2
6
8
11
11
11
11
12
12
13
13
13
13
13
13
14
14
14
14
15
15
15
15
15
15
15
15
16
16
16
17
17
17
17
17
17
18
18
18
19
19
19
19
19
19
19
19
20
20
20
20
21
21
22
22
24
24
37
37
38
38
38
39
39
39
40
40
40
40
40
41
41
41
41
42
42
42
42
42
44
45
45
46
46
46
46
47
47
47
47
49
49
49
49
50
50
51
51
51
51
51
51
52
52
54
56
56
58
59
59
62
62
72
73
74
75
75
80
86
86
89
91
93
119
121
121
141
142
143
143
144
145
231
232
233
2
2
3
3
6
6
7
7
7
10
11
11
11
11
13
13
14
14
15
15
15
16
16
16
16
17
17
17
17
18
18
19
19
20
20
20
20
20
20
20
20
22
22
23
23
25
25
27
29
38
38
39
39
39
39
40
40
40
41
41
42
42
42
42
42
42
42
43
43
43
43
44
44
44
44
45
46
47
47
47
47
48
48
48
48
49
49
49
50
50
50
51
51
53
53
57
57
57
59
60
60
63
63
69
74
75
76
76
79
85
86
87
87
90
92
94
120
122
122
142
142
143
144
144
144
145
146
146
232
233
234
1
3
3
3
4
4
4
7
8
8
8
8
8
8
8
8
9
10
11
11
11
12
12
12
12
13
13
14
15
15
15
15
15
15
16
16
17
17
17
18
18
19
20
20
20
21
23
23
25
26
26
28
30
39
39
39
40
40
40
41
41
41
41
41
42
42
42
43
43
44
44
45
45
46
47
48
48
48
49
49
49
49
51
51
51
51
52
54
54
54
57
60
60
60
60
60
61
64
64
69
72
72
74
74
74
75
76
77
77
80
85
86
87
88
88
91
93
95
121
123
123
143
144
145
146
147
147
233
233
235
1
1
4
5
5
5
8
8
8
8
9
9
9
9
9
9
10
10
10
11
11
11
11
11
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
14
14
14
14
15
15
15
15
15
15
16
16
17
17
17
19
20
21
22
24
24
26
26
27
27
27
27
29
29
30
31
36
40
41
41
41
43
43
43
44
44
44
44
45
45
45
46
46
47
47
48
49
49
49
50
50
51
52
52
53
55
55
61
61
61
62
65
65
75
75
76
78
78
86
86
87
88
89
92
94
96
122
122
124
124
144
145
146
147
148
148
233
234
234
236
1
1
1
1
1
5
5
6
6
8
8
8
8
8
9
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
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
16
16
17
17
17
17
18
22
23
25
25
27
27
27
28
28
28
28
29
30
31
31
32
33
34
35
37
38
38
41
41
41
43
43
45
45
45
46
46
46
46
46
46
46
46
46
46
48
49
49
50
50
50
51
51
54
56
56
60
60
62
62
62
66
66
72
74
76
76
77
79
79
85
87
87
88
88
89
89
93
95
97
123
123
125
125
145
146
147
148
149
149
235
235
237
1
1
1
2
5
5
6
7
7
7
8
9
9
9
10
10
10
10
10
11
11
11
11
11
11
11
11
11
12
12
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
16
16
16
17
17
17
17
17
19
19
23
24
26
26
26
28
28
28
29
29
29
29
29
30
30
30
31
32
32
33
33
34
35
36
36
37
37
38
38
38
39
39
41
42
43
44
44
44
46
46
46
46
46
47
47
47
47
47
49
49
50
51
51
51
52
52
52
55
57
57
61
63
67
67
75
78
80
80
85
87
88
88
89
94
96
98
123
123
124
126
126
146
147
148
149
150
150
236
236
238
1
1
2
3
4
4
5
5
7
7
8
8
8
8
8
8
8
8
9
10
10
11
11
11
11
11
11
11
11
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
16
16
16
16
16
17
18
18
18
24
25
27
27
27
29
29
29
30
30
30
30
31
31
31
32
33
33
33
33
34
34
34
35
36
36
36
37
37
38
38
39
39
39
40
40
41
43
43
44
45
45
47
47
47
48
48
48
48
48
50
51
52
52
52
52
53
53
56
58
58
60
60
62
64
68
68
76
79
81
81
86
86
87
88
89
89
89
90
95
97
99
99
123
124
124
125
127
127
147
148
149
150
151
151
237
237
239
3
4
4
5
5
5
5
5
5
7
8
8
9
9
9
9
9
9
9
9
9
9
9
10
10
10
11
11
11
11
11
11
12
12
12
12
12
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
16
16
16
16
17
17
17
17
17
19
19
19
19
20
20
25
26
28
28
28
28
28
30
30
31
31
31
31
32
32
32
33
34
34
34
34
35
35
35
36
36
36
37
37
37
37
38
38
38
39
39
40
40
41
41
41
42
44
46
46
46
46
47
48
48
49
49
51
51
53
53
53
54
54
57
59
59
60
60
61
61
65
69
69
72
74
80
81
81
82
86
89
89
90
90
90
95
98
100
100
124
124
125
126
128
128
148
149
150
151
152
152
238
238
240
1
4
4
5
5
5
5
6
6
7
8
8
9
9
9
10
10
10
10
10
10
10
11
11
11
11
11
11
11
12
12
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
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
19
19
19
19
20
20
20
20
26
27
29
29
29
29
29
31
31
32
32
32
32
32
33
33
33
34
34
35
35
35
36
36
36
36
37
37
37
38
38
38
39
39
39
40
40
40
40
41
41
41
41
42
42
42
43
44
44
46
46
47
47
49
50
50
51
52
52
54
54
54
55
55
57
57
58
60
60
62
62
66
70
70
72
73
74
75
81
82
83
86
87
88
89
90
90
91
91
99
101
101
124
124
125
126
127
129
149
150
151
152
153
153
239
239
241
1
1
1
5
5
5
6
6
7
7
7
8
9
9
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
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
17
19
19
19
20
20
20
20
27
28
30
30
30
30
32
32
32
33
33
33
33
34
34
34
35
35
36
36
36
36
37
37
37
38
38
39
39
39
39
39
39
40
40
40
40
40
41
41
42
43
43
43
43
43
44
45
47
48
48
48
50
51
51
52
52
52
52
53
53
54
55
55
55
56
56
58
58
59
61
61
63
63
67
71
71
73
74
75
76
82
83
84
86
86
89
90
91
100
102
102
125
126
128
130
150
151
152
153
154
154
240
240
242
1
1
4
5
5
6
6
7
7
7
8
8
8
8
10
10
10
10
11
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
16
16
16
16
16
16
16
16
17
17
17
17
17
17
18
18
18
18
19
20
20
28
29
31
31
33
33
33
33
33
34
34
34
34
34
35
35
36
36
36
37
38
38
38
39
39
39
40
40
41
41
41
41
41
42
42
42
43
44
44
44
45
46
46
47
48
49
49
49
49
49
51
52
52
52
53
53
54
54
55
56
56
56
57
57
58
58
59
60
62
62
63
63
64
68
72
72
75
76
77
83
84
85
87
87
87
89
89
89
90
91
101
103
103
124
124
126
129
131
151
152
153
154
155
155
241
241
243
1
1
1
1
4
5
5
6
7
7
7
7
8
8
9
9
10
11
11
11
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
15
15
15
15
16
16
16
16
16
16
17
17
17
17
17
17
17
18
18
18
18
19
19
19
19
20
29
30
32
32
33
34
34
34
34
34
35
35
35
35
36
36
36
37
37
37
38
39
39
39
39
41
41
41
42
42
42
42
43
43
44
44
45
45
46
47
47
47
49
49
50
52
52
53
53
53
55
55
55
55
57
57
57
58
58
58
58
59
60
61
63
63
63
64
65
69
73
73
76
78
84
85
86
88
88
90
90
90
90
102
104
104
125
127
128
130
132
152
153
155
156
156
242
242
244
1
1
1
1
4
5
5
5
5
6
7
7
7
8
9
9
10
10
10
11
11
12
12
12
12
12
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
16
16
16
16
17
17
17
17
17
17
17
18
18
19
19
19
20
20
20
30
31
33
33
34
35
35
35
35
35
35
35
36
36
36
36
36
36
37
38
38
38
39
39
40
40
40
42
42
43
43
43
43
44
44
44
46
46
48
50
51
53
54
54
54
55
56
56
58
58
58
58
58
59
59
59
60
62
63
64
64
64
65
66
70
74
74
76
76
77
77
79
85
86
87
89
91
91
103
105
105
124
126
129
131
133
153
154
156
157
157
243
243
245
1
1
5
5
5
6
6
7
7
8
8
8
8
9
9
10
10
10
11
11
11
11
11
11
11
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
17
17
18
18
18
18
18
18
18
20
20
27
29
31
32
32
32
34
34
34
34
35
36
36
36
36
36
36
36
37
37
37
37
38
39
39
39
40
41
41
41
41
42
43
44
44
45
45
47
49
51
52
53
55
55
55
57
57
59
59
59
59
60
60
60
63
64
65
65
65
66
71
75
75
78
78
80
86
87
88
90
91
104
106
106
124
125
130
132
134
154
155
157
158
158
244
246
1
5
6
6
7
7
8
8
8
8
8
8
8
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
11
11
12
12
12
13
13
13
13
13
13
13
14
14
14
14
14
15
15
15
15
15
15
16
16
16
16
16
17
17
17
17
17
18
18
19
27
28
29
29
30
31
32
33
33
33
34
34
34
34
35
35
35
36
36
36
37
37
37
37
37
37
38
38
38
38
39
40
40
40
41
42
42
43
43
43
44
45
46
48
49
52
52
53
56
56
56
58
58
60
60
60
60
61
61
64
65
66
66
72
76
76
76
79
79
87
87
88
89
91
105
107
107
126
131
133
135
152
155
156
158
159
159
245
247
4
5
6
6
6
8
8
8
8
8
8
8
8
9
9
9
9
9
10
10
10
10
10
10
10
10
11
11
11
11
11
12
12
12
13
13
13
13
13
13
15
15
15
15
15
15
15
17
17
17
17
17
17
18
18
18
18
20
20
28
29
29
29
30
30
31
31
34
34
34
35
35
35
35
36
36
36
37
38
38
38
38
38
38
39
39
39
39
40
41
41
41
42
43
43
43
47
48
52
53
54
57
57
57
59
59
61
61
61
62
65
67
67
73
77
77
77
88
88
88
88
89
90
106
108
108
127
132
134
136
153
154
156
157
159
160
160
246
248
1
1
1
5
5
5
5
5
8
8
9
9
9
10
10
10
10
10
11
11
11
11
11
12
12
12
12
12
12
12
12
12
13
14
14
14
15
15
15
15
16
16
16
16
16
17
17
18
18
18
18
19
19
21
21
29
30
30
30
31
31
31
32
32
35
35
35
35
35
35
36
36
36
36
37
37
37
37
38
38
38
39
39
39
40
40
41
41
42
42
43
43
44
44
46
47
47
47
47
47
47
48
49
49
51
53
53
54
55
58
58
58
60
60
62
62
63
63
66
68
68
74
76
77
78
78
78
87
89
89
89
90
91
107
109
109
124
133
135
135
137
137
155
157
158
160
161
161
242
247
249
1
1
4
5
5
5
5
8
8
8
9
9
9
9
9
9
9
9
10
10
10
10
11
11
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
14
14
14
15
15
15
15
15
15
15
16
16
17
17
18
18
19
19
19
19
20
20
20
22
22
26
30
30
31
31
32
32
32
32
33
34
35
36
36
36
36
37
37
37
37
38
38
39
39
39
40
40
40
41
41
42
42
43
43
44
45
46
47
47
47
47
48
48
50
50
50
51
52
54
54
55
55
56
58
59
59
59
61
61
63
63
64
64
67
69
69
75
76
78
79
79
79
88
90
90
90
90
90
90
91
92
106
110
110
123
124
125
134
138
138
156
158
159
161
162
162
243
245
248
250
1
1
5
5
5
5
5
5
8
8
8
8
9
9
9
9
9
9
9
9
9
10
10
11
11
11
11
12
12
12
12
12
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
15
15
15
15
15
15
16
16
16
17
18
18
18
19
19
19
19
20
20
20
20
20
20
21
21
23
23
27
28
30
32
32
33
34
34
34
34
36
37
37
37
37
39
39
39
40
40
40
41
41
41
42
42
43
43
43
44
44
44
44
45
47
47
47
47
48
48
48
48
49
49
49
50
55
56
57
58
58
59
60
60
60
62
62
64
64
65
65
68
70
70
76
77
79
80
80
80
89
90
90
91
91
91
91
91
91
91
92
93
107
109
111
111
124
124
126
135
139
139
157
159
160
162
163
163
246
249
251
1
4
5
6
6
6
9
9
9
9
10
10
10
10
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
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
18
18
19
19
19
20
20
21
21
21
21
22
22
24
24
28
28
29
29
32
32
34
34
36
36
36
37
37
37
38
38
38
40
40
40
40
40
41
41
41
42
42
42
43
43
43
44
44
45
45
45
45
45
46
47
47
48
48
48
49
52
52
54
57
58
58
59
60
61
61
61
63
63
63
65
65
66
66
69
71
71
76
77
78
80
80
81
81
91
92
92
92
92
92
93
94
110
112
112
125
125
127
127
136
140
140
158
160
161
163
164
164
247
250
252
1
4
5
5
7
7
8
8
8
8
8
8
9
9
9
10
10
10
10
10
10
10
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
18
18
18
18
18
18
19
20
22
22
22
22
22
22
23
23
24
24
25
25
27
29
29
29
30
30
31
31
32
32
33
33
33
34
34
35
36
37
38
39
39
39
39
40
41
41
41
42
43
43
43
44
44
44
45
45
46
47
49
49
49
49
53
54
58
59
60
61
62
62
62
64
64
64
66
66
67
70
72
72
76
78
79
82
82
92
92
93
94
95
111
113
113
124
127
127
128
128
137
141
141
159
161
162
164
165
165
248
251
253
1
1
1
4
4
4
4
5
5
5
6
6
6
8
8
8
8
8
8
9
9
10
10
10
10
10
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
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
16
16
16
16
16
17
17
17
17
17
17
17
17
17
18
18
18
19
19
19
19
19
19
19
19
23
23
23
23
23
23
24
24
25
25
25
26
26
28
29
29
30
30
31
31
31
31
31
32
32
32
33
34
34
34
34
35
35
36
36
36
36
36
36
38
39
40
40
40
41
41
42
42
42
43
43
44
44
44
45
45
46
47
48
50
50
54
59
60
61
61
63
63
63
65
65
67
67
68
71
73
73
77
77
79
80
80
83
83
92
94
95
96
112
114
114
128
129
129
138
142
142
160
162
163
165
166
166
249
252
254
1
1
1
1
1
1
5
5
5
5
5
5
5
5
7
7
7
8
8
8
9
9
9
9
9
10
10
10
11
11
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
16
16
16
17
17
17
17
17
17
17
18
18
18
18
19
19
19
19
19
20
20
20
20
24
24
24
24
24
24
26
26
26
27
27
27
27
28
29
29
30
30
30
31
31
31
31
32
32
32
33
33
33
34
35
35
35
35
35
36
36
37
37
37
39
40
41
41
41
42
43
43
43
44
44
44
45
45
45
45
45
46
46
46
47
48
49
53
53
60
61
61
61
62
64
64
64
64
64
66
66
66
66
66
68
68
69
72
74
74
77
80
80
81
81
84
84
89
89
90
95
96
97
113
115
115
129
139
143
143
161
163
164
165
166
167
167
250
253
255
1
1
1
1
4
4
4
4
5
5
5
5
5
6
6
6
6
6
8
8
8
8
8
8
9
9
9
9
10
10
10
10
11
11
11
11
12
12
12
12
12
12
12
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
17
17
17
17
18
18
19
20
21
21
21
21
25
25
25
25
27
27
27
28
28
28
28
29
30
30
30
31
31
31
32
33
33
34
34
34
34
35
35
36
36
36
36
36
36
36
36
36
37
37
38
38
38
40
41
42
42
43
44
44
44
45
46
46
47
47
47
48
49
50
50
53
61
62
62
62
63
65
65
65
67
67
67
67
69
70
73
74
74
75
77
80
81
81
82
82
85
85
90
90
91
96
97
98
114
116
116
140
144
144
162
164
164
166
167
168
168
251
254
256
1
1
1
4
5
5
5
5
5
5
5
5
5
6
6
7
7
8
8
8
8
8
8
9
9
9
9
9
9
9
10
10
11
11
11
11
11
11
11
11
12
12
12
13
13
13
13
14
14
14
14
15
15
15
15
16
16
16
16
16
16
17
17
18
18
18
18
21
22
22
22
22
24
26
26
26
26
28
28
28
28
28
29
29
29
29
30
30
30
31
31
32
32
32
32
33
34
34
34
34
34
34
35
35
35
35
35
35
35
35
36
36
37
37
37
37
37
37
38
38
39
41
43
43
44
44
45
45
45
47
47
48
48
48
49
50
50
50
50
51
52
54
61
62
63
63
63
64
66
66
66
66
68
68
68
68
70
71
74
75
76
77
77
81
82
82
86
91
92
97
98
99
115
117
117
124
124
127
141
145
145
163
165
167
168
169
169
252
255
257
1
1
4
4
4
5
6
6
6
6
6
6
8
8
8
8
8
9
9
9
9
9
9
9
9
10
10
10
11
11
11
11
11
12
12
12
12
12
13
13
14
14
15
15
15
15
15
15
16
17
17
17
17
17
17
18
21
21
21
22
22
22
23
23
25
26
26
26
26
27
27
27
27
29
29
29
30
30
30
30
30
31
31
32
32
32
33
33
33
34
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
37
37
38
38
38
38
38
38
39
39
39
43
44
45
45
46
46
48
48
48
49
49
49
50
51
51
51
51
52
52
53
62
63
64
67
67
67
69
69
71
72
75
76
77
78
78
80
80
80
82
83
85
85
87
92
98
99
100
116
118
118
125
127
128
142
146
146
164
166
168
169
170
253
258
1
1
1
1
1
4
4
4
5
5
5
5
5
5
5
5
6
7
7
7
7
8
8
9
9
9
9
10
11
11
11
11
11
11
12
12
12
12
12
12
12
13
13
13
14
14
15
15
15
15
15
16
18
18
18
18
18
19
22
23
23
23
24
24
25
25
26
27
27
27
27
28
28
28
28
30
30
30
30
31
31
31
31
32
32
33
34
35
35
36
36
36
36
36
37
37
37
37
37
37
37
38
38
39
39
39
39
40
41
43
45
45
45
46
47
47
47
49
49
49
50
50
50
51
51
51
52
52
52
53
53
53
54
54
63
64
65
67
68
68
68
70
70
72
73
76
77
78
81
81
81
81
84
86
88
89
91
92
99
100
101
117
119
119
128
129
143
147
147
165
167
169
169
169
170
171
254
256
259
1
4
5
5
5
5
5
6
6
6
6
7
7
7
7
7
7
8
8
8
8
9
9
10
10
10
10
10
10
11
11
12
12
12
12
12
12
12
13
13
13
13
13
14
14
14
14
14
15
15
15
15
15
15
15
16
16
19
19
19
19
19
20
20
22
23
24
24
24
24
25
25
26
26
27
27
28
28
28
28
29
29
29
30
31
31
31
31
31
32
32
32
33
33
35
35
35
36
37
37
37
37
37
38
38
38
39
40
40
40
40
40
40
41
45
45
46
47
48
48
48
50
50
50
50
51
51
51
51
51
52
52
52
52
53
53
53
54
54
55
55
61
64
65
66
66
66
68
69
69
71
71
73
74
77
78
79
82
82
85
87
89
90
90
92
92
92
100
102
118
120
120
129
144
148
148
166
168
170
170
171
172
255
255
257
260
5
5
5
5
5
5
6
6
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
14
14
14
14
15
15
15
15
15
15
15
16
16
16
16
16
16
19
19
20
20
20
20
20
20
21
21
23
23
24
24
25
25
25
25
26
26
27
27
29
29
29
29
29
30
30
30
31
31
32
32
32
32
32
33
33
33
33
34
35
35
36
36
36
37
38
39
39
39
40
40
40
40
41
41
44
45
47
48
49
49
49
51
51
51
51
51
51
52
52
52
52
52
53
53
53
54
54
55
55
55
55
55
56
61
62
64
65
66
66
67
67
69
70
70
72
72
74
75
78
79
80
82
86
88
90
90
91
93
93
100
101
101
103
119
121
124
145
149
149
167
169
171
171
172
173
256
258
261
5
5
5
5
5
5
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
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
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
15
15
15
15
16
16
16
16
16
16
16
17
17
17
17
18
19
20
20
21
21
22
22
22
24
24
24
25
25
25
26
26
26
26
27
27
28
28
29
30
30
31
31
31
31
31
32
32
32
33
33
33
33
33
33
34
34
34
37
37
39
39
40
40
40
40
40
40
41
42
42
43
45
45
48
49
50
50
52
52
52
53
53
53
53
53
54
55
56
56
56
57
61
62
63
65
66
67
67
68
68
70
71
71
73
73
75
76
79
80
81
82
87
89
91
91
92
92
93
93
93
93
94
102
102
104
120
122
125
127
146
150
150
168
170
172
172
173
174
257
259
262
4
5
5
5
5
5
5
5
5
5
6
6
6
7
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
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
15
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
18
19
21
21
21
21
22
22
22
22
23
23
23
24
25
25
26
26
26
26
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
31
31
32
32
32
33
33
33
34
34
34
34
34
34
34
35
35
38
38
38
38
40
40
41
41
41
42
43
48
48
49
49
50
51
51
51
53
53
53
54
54
54
55
55
55
56
57
57
57
62
63
67
68
68
69
69
71
72
72
74
74
76
77
80
81
82
88
90
91
92
92
93
94
94
95
103
103
105
119
120
121
123
127
128
129
147
151
151
169
171
173
173
174
175
258
260
263
1
4
4
5
5
5
5
5
5
6
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
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
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
18
18
18
18
18
18
18
18
19
19
19
22
22
22
22
22
23
23
23
23
24
24
24
25
25
25
26
26
26
26
26
27
27
27
27
28
28
28
28
28
28
29
29
29
29
29
29
29
32
32
32
32
33
33
33
33
34
34
35
35
35
35
35
35
35
36
36
38
40
42
42
42
45
45
49
50
50
51
51
52
52
54
54
55
55
56
56
57
58
62
62
63
63
63
64
68
69
70
70
72
73
73
75
75
77
78
81
82
83
89
91
91
92
93
93
93
93
94
95
95
104
104
106
121
122
124
128
129
148
152
152
170
172
174
174
175
176
259
261
264
1
1
5
5
5
5
5
5
6
6
7
7
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
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
15
15
15
15
15
16
16
16
16
17
17
17
17
17
17
17
18
18
19
19
19
20
20
20
20
22
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
27
27
27
28
28
28
28
28
28
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
33
33
33
34
34
34
35
35
36
36
36
36
36
36
36
36
37
37
43
43
45
45
46
49
50
51
51
52
53
53
55
55
55
56
56
57
57
58
59
64
64
65
68
68
69
69
70
71
71
73
74
74
76
76
78
79
80
81
83
84
90
91
92
92
92
93
94
94
94
94
105
105
107
122
123
125
130
149
153
153
171
173
175
175
176
177
260
262
265
1
1
4
4
4
5
5
5
5
5
5
5
5
5
6
6
6
7
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
11
11
12
12
12
12
12
12
12
13
13
13
13
13
14
14
14
14
14
14
14
15
15
15
15
15
16
16
16
17
17
17
17
18
18
18
18
18
18
18
19
19
20
20
20
20
20
20
20
22
22
23
23
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
29
30
30
30
30
31
31
31
31
31
31
31
31
31
33
34
34
34
34
35
35
35
35
36
36
37
37
37
37
37
37
37
37
37
38
38
46
47
49
50
51
51
52
52
53
54
54
55
55
56
56
57
57
58
59
60
62
63
65
65
68
70
70
71
72
72
74
75
75
77
77
79
80
81
82
82
82
82
83
84
85
90
91
92
93
93
93
93
94
95
95
95
106
106
108
123
124
126
128
129
131
150
154
154
172
174
176
176
177
178
261
263
266
1
1
1
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
7
7
7
8
8
9
9
9
9
9
10
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
15
15
15
15
15
15
15
16
16
16
18
18
18
18
19
19
19
19
19
19
20
20
20
21
21
21
21
21
21
22
22
23
23
24
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
29
29
29
29
29
29
30
30
31
31
31
32
32
32
32
32
32
33
33
35
35
35
35
35
36
36
36
36
36
37
37
37
37
38
38
38
38
39
39
43
45
45
47
49
50
51
51
51
51
51
52
52
53
54
55
55
57
57
58
58
59
60
61
64
69
71
71
72
73
75
76
76
78
78
80
80
81
83
83
84
85
86
91
93
93
93
94
94
94
94
96
96
107
107
109
124
125
127
128
128
129
129
130
151
155
155
173
177
177
178
179
262
264
267
4
5
5
5
5
5
5
6
6
6
6
6
6
6
6
7
7
7
8
8
8
8
8
8
8
8
9
9
10
10
10
10
10
11
11
11
12
12
12
12
13
13
13
13
14
14
14
14
14
14
14
15
16
16
16
16
16
16
17
19
19
19
19
19
20
20
20
20
20
21
21
21
21
21
22
22
22
22
22
22
22
23
23
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
29
29
29
29
29
29
30
30
30
30
30
31
31
32
32
33
33
33
33
33
33
33
36
36
36
37
37
37
38
38
38
39
39
39
39
40
40
43
45
45
45
45
46
49
51
51
52
52
52
52
53
54
55
56
56
58
58
59
59
60
61
62
62
65
68
70
73
74
76
77
77
79
79
80
81
82
83
85
86
87
92
92
93
94
94
95
95
95
97
97
108
108
110
125
126
128
130
130
131
152
156
156
174
178
178
179
180
263
265
268
1
2
5
5
5
5
5
5
5
5
5
6
6
7
7
7
8
8
8
8
9
9
9
10
10
10
10
10
11
11
11
11
11
12
12
12
12
12
12
12
12
13
13
13
13
13
13
14
14
15
15
16
18
20
20
20
20
20
20
20
21
21
21
21
21
22
22
22
22
22
23
23
23
24
27
27
27
27
27
27
27
27
27
27
27
28
28
28
29
29
29
29
29
29
30
30
30
31
31
31
31
31
31
31
32
33
33
33
33
34
34
34
34
34
35
35
37
37
37
37
38
38
38
38
38
40
40
40
40
40
41
41
46
46
46
46
47
50
52
52
53
54
55
56
57
57
58
58
59
60
60
61
62
62
63
63
63
69
71
74
75
77
78
78
80
82
83
83
86
87
88
93
93
95
95
96
96
98
98
109
111
126
127
127
129
129
131
131
153
157
157
175
179
179
180
181
264
266
269
1
2
3
5
5
6
6
6
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
12
12
12
12
12
12
12
13
13
13
13
13
14
14
15
16
17
17
17
17
18
18
19
20
20
21
21
21
21
21
22
22
22
22
22
22
22
23
23
23
23
23
23
23
24
24
24
24
24
25
28
28
28
28
28
28
28
28
29
29
29
30
30
30
31
31
31
31
31
31
32
32
32
32
32
33
34
35
35
35
35
35
37
38
38
38
38
39
39
39
39
39
39
40
41
41
42
42
47
47
50
50
52
53
54
54
56
57
58
58
58
59
60
61
61
62
63
63
63
63
64
68
70
72
75
76
78
79
79
81
83
84
87
88
89
93
93
94
96
97
99
99
110
112
127
130
130
154
158
158
176
180
180
181
182
265
267
270
1
1
3
4
4
4
5
5
5
5
5
6
6
6
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
14
14
14
14
14
15
15
15
15
16
16
18
18
18
18
19
19
20
21
21
21
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
23
23
23
24
24
24
24
25
25
25
25
26
29
29
29
29
29
30
30
30
30
31
31
31
32
32
33
33
33
33
33
33
33
34
35
36
36
36
36
36
38
39
39
40
40
40
42
42
43
43
43
43
46
46
50
52
53
54
54
55
57
58
58
59
59
59
60
61
62
62
63
64
64
64
65
69
71
76
79
80
80
82
84
85
88
89
90
93
94
95
96
96
97
98
100
100
111
113
128
129
131
131
155
159
159
177
181
181
182
183
266
268
271
4
4
4
4
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
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
14
14
14
14
15
15
15
15
15
15
16
16
16
17
18
19
19
19
20
21
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
23
23
23
24
24
24
24
25
25
26
26
26
27
27
27
28
28
28
28
28
28
29
30
30
30
30
31
31
31
31
31
32
32
32
32
33
33
34
34
34
35
35
36
37
37
37
37
37
37
40
41
41
41
43
43
44
44
44
44
46
49
55
55
56
58
59
59
60
60
60
61
63
63
63
64
65
65
68
70
72
72
77
81
81
83
85
86
89
90
91
95
97
97
98
99
101
101
112
114
128
129
129
130
132
132
156
160
160
174
178
182
182
183
184
267
269
272
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
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
12
12
12
12
13
13
13
13
13
13
13
13
14
14
14
14
14
15
15
15
15
15
15
16
16
16
16
16
16
17
18
18
19
20
20
20
20
20
20
20
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
26
26
27
27
27
28
28
28
28
28
28
28
29
29
29
29
29
29
29
30
31
31
31
32
32
32
32
33
33
33
33
33
34
34
35
35
35
37
38
38
38
38
38
38
38
41
42
42
42
44
44
45
45
45
47
50
50
53
53
54
56
56
59
60
60
61
61
64
64
64
65
65
65
66
68
71
76
78
82
82
84
86
87
90
91
92
98
98
100
102
102
108
113
115
128
130
130
131
133
133
157
161
175
178
179
183
183
184
185
268
270
273
1
3
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
8
8
8
9
9
9
9
9
9
9
9
10
10
10
10
11
11
11
11
11
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
16
16
16
17
17
17
17
18
18
18
19
20
21
21
21
21
21
21
21
21
21
21
22
22
22
23
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
29
29
29
30
30
30
30
31
31
32
32
33
33
33
34
34
34
35
35
35
36
36
39
39
39
39
39
42
43
43
43
44
45
45
45
46
46
46
51
54
54
54
54
55
60
61
62
62
64
65
65
66
66
67
69
69
69
72
72
72
79
82
83
83
85
87
88
91
92
93
101
103
103
109
110
114
116
131
131
132
134
134
158
160
160
162
179
180
184
184
185
186
269
271
274
1
1
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
9
9
9
10
10
10
11
11
11
11
12
12
12
12
12
12
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
15
15
15
15
15
16
16
16
16
16
17
17
18
18
18
18
18
19
19
19
19
19
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
26
27
27
28
28
28
28
29
29
29
29
29
29
30
30
30
31
31
31
31
32
33
33
33
33
33
33
34
34
34
35
35
35
35
36
36
36
36
37
40
40
40
40
40
43
44
44
44
44
46
46
47
47
47
52
54
54
54
54
55
55
56
58
61
62
63
63
66
66
67
67
69
72
73
73
73
80
83
83
83
84
86
88
89
92
93
93
94
102
104
104
111
115
117
129
132
132
135
135
159
161
163
180
181
185
185
186
187
270
272
275
4
5
5
5
5
5
5
5
6
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
10
10
10
10
10
11
11
12
12
12
13
13
13
13
14
14
14
14
15
15
15
15
15
16
16
16
17
17
18
18
19
19
19
19
19
19
19
20
20
20
20
21
21
22
22
22
22
23
23
23
23
23
23
23
23
23
23
24
25
25
25
25
25
25
26
26
26
26
26
27
27
27
27
27
27
28
28
29
29
29
29
29
29
29
29
30
30
30
30
31
31
31
31
31
32
33
33
33
34
34
34
35
35
35
35
35
35
36
36
36
37
37
38
38
41
41
41
41
41
44
45
45
45
46
46
47
47
48
48
48
49
50
54
55
55
56
56
58
59
62
63
63
63
64
67
67
73
74
74
74
81
83
83
84
84
85
87
89
90
93
94
95
96
96
101
105
105
112
116
118
130
133
136
136
160
162
164
181
182
186
187
188
271
273
276
1
4
5
5
5
5
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
9
9
9
9
9
10
10
10
10
10
11
11
11
11
12
12
12
12
13
13
13
14
14
14
15
15
15
16
16
16
16
17
17
18
18
18
18
19
19
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
22
22
23
23
23
23
24
24
24
24
24
25
26
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
29
29
29
29
29
30
30
30
31
31
31
31
32
32
32
32
33
33
33
33
33
33
33
33
34
35
35
36
36
36
36
36
37
37
37
38
38
38
39
39
42
42
42
42
42
45
46
46
46
47
47
48
49
49
50
50
50
52
52
54
55
56
56
59
60
63
64
64
64
65
65
68
68
69
69
74
82
83
84
84
84
84
84
85
86
88
90
91
93
93
94
94
95
96
97
102
104
106
106
113
117
117
119
119
130
132
134
137
137
161
163
165
182
183
187
188
189
272
274
277
1
1
1
1
4
4
5
5
5
5
6
6
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
10
10
10
10
10
11
11
11
11
11
11
11
12
12
12
12
12
13
13
13
13
14
14
15
15
16
16
17
17
17
17
17
17
18
18
19
19
19
19
19
20
20
21
21
21
22
22
22
22
22
22
22
22
23
23
23
24
24
24
25
25
25
25
25
25
25
26
26
27
27
27
27
28
28
28
29
29
30
30
30
30
30
30
31
31
32
32
32
32
32
33
33
33
33
33
33
33
34
34
34
34
34
34
35
37
37
38
38
38
39
39
40
40
43
43
43
43
43
44
44
45
45
46
46
47
47
47
49
50
50
51
53
53
54
55
56
58
60
61
64
65
65
65
65
66
69
69
70
70
72
72
72
83
85
85
85
86
87
89
91
92
92
93
93
94
95
95
95
96
96
96
97
98
105
107
107
114
120
120
132
135
138
138
162
164
166
183
184
185
187
188
189
190
273
275
278
5
5
5
5
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
11
11
11
11
12
12
12
12
12
12
13
13
13
13
13
14
14
15
15
15
15
16
17
17
18
18
18
18
19
19
20
20
20
20
21
21
22
22
22
23
23
23
23
23
23
23
24
24
24
24
25
25
25
25
26
26
26
26
26
26
26
27
27
27
29
29
30
30
30
30
31
31
31
31
31
32
33
33
33
33
33
34
34
34
34
34
35
35
35
36
36
38
38
38
39
39
39
40
40
40
40
41
43
44
44
44
44
44
45
45
45
46
47
47
47
48
48
48
48
50
51
51
52
52
53
53
53
53
54
54
55
56
59
61
64
64
65
65
66
66
66
67
70
70
73
73
73
73
84
84
84
86
86
86
88
90
90
92
93
93
94
96
96
96
96
97
97
98
106
108
108
115
121
121
136
139
139
163
165
167
184
185
188
189
190
191
274
276
279
4
5
5
5
5
5
5
5
5
6
6
6
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
11
11
11
11
11
11
12
12
12
12
12
12
12
13
13
13
13
13
14
15
15
15
15
16
16
16
16
16
17
17
17
18
18
19
19
19
20
20
20
21
21
21
21
22
22
22
23
24
24
24
24
25
26
26
26
26
27
27
27
27
27
27
27
28
29
29
30
30
30
30
30
31
31
31
31
31
31
31
31
31
32
32
32
33
33
34
34
34
34
34
34
35
35
35
36
36
36
37
39
39
39
39
40
40
40
40
40
41
41
41
42
44
45
45
45
45
45
47
48
48
48
49
49
49
49
51
52
52
52
53
54
54
54
54
55
55
55
55
56
56
56
57
62
65
65
66
66
67
67
67
67
68
71
71
74
74
74
85
85
87
89
93
94
94
94
97
97
97
98
98
99
107
109
109
116
122
122
137
140
140
164
166
168
185
186
189
190
191
192
275
277
280
1
1
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
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
10
10
10
10
10
10
10
11
11
11
11
11
11
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
14
14
14
14
15
15
15
15
17
17
17
18
18
18
18
19
19
19
19
20
20
20
21
21
22
22
22
22
22
22
22
22
22
23
23
24
24
25
25
25
25
26
27
28
28
29
29
30
30
30
30
30
30
30
30
31
32
32
32
32
32
32
32
33
33
33
34
34
34
35
35
35
35
35
35
36
36
38
40
40
40
40
41
41
41
41
42
42
42
44
45
45
46
46
46
46
46
48
49
49
49
50
50
50
52
53
53
53
53
53
54
54
55
55
55
56
57
57
58
59
59
61
61
61
63
65
66
67
67
68
68
69
72
72
74
84
84
86
86
88
90
94
95
95
96
98
98
98
99
100
108
110
110
117
123
123
138
141
141
165
167
169
186
187
190
191
192
193
276
278
281
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
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
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
12
12
12
12
13
13
13
13
13
13
14
14
14
14
14
14
14
15
15
16
16
16
16
17
17
17
17
18
18
18
18
18
18
19
19
19
19
19
19
20
20
20
20
20
20
20
20
21
21
21
22
22
22
22
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
26
26
27
27
30
30
30
31
31
31
31
31
31
31
31
32
33
33
33
33
33
33
34
34
35
35
36
36
36
36
36
39
41
41
41
42
42
42
42
43
43
45
45
47
47
47
48
49
49
50
50
51
51
51
52
53
54
54
54
54
55
55
56
56
57
57
58
58
62
62
66
66
67
67
68
69
69
70
73
73
83
84
84
85
85
87
89
91
95
96
96
96
99
99
100
101
109
111
111
118
124
124
139
142
142
168
170
187
188
191
192
193
194
277
279
282
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
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
13
13
13
13
13
13
13
15
15
15
15
15
15
15
15
16
16
16
16
16
17
17
17
18
18
18
18
18
18
19
19
19
20
20
20
20
20
21
21
21
21
21
21
21
21
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
26
26
26
27
27
28
31
31
31
31
31
31
31
31
31
31
32
32
32
32
33
34
34
34
34
34
35
35
36
36
36
37
37
37
40
42
42
42
43
43
43
44
44
44
46
46
46
46
48
48
48
48
49
50
51
51
52
52
52
53
53
53
53
54
55
55
55
55
57
57
59
61
63
63
68
68
69
70
70
71
74
74
84
86
86
88
90
92
92
96
97
97
97
98
100
100
102
110
112
112
119
125
125
140
143
143
169
171
188
189
192
193
194
195
278
280
283
4
4
5
5
5
5
5
5
5
5
6
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
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
14
16
16
16
16
16
16
16
16
17
17
17
17
17
18
18
18
18
19
19
20
20
20
20
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
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
27
28
28
28
28
28
29
31
31
31
31
31
31
31
31
32
32
32
32
32
32
33
33
33
33
34
35
35
35
35
36
36
37
38
38
38
41
43
43
44
44
45
45
47
47
49
49
49
49
49
50
52
52
52
53
53
53
53
53
54
54
54
54
55
55
56
58
58
62
67
67
69
69
69
70
71
71
72
75
75
84
85
87
87
88
91
93
93
97
97
98
98
98
99
101
101
103
111
113
113
120
126
126
141
144
144
170
172
189
190
193
194
195
196
279
281
284
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
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
13
13
13
13
13
13
13
14
14
15
15
15
15
16
16
17
17
17
17
18
18
18
18
18
18
18
18
19
19
20
20
20
20
20
20
20
20
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
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
29
29
29
30
31
31
31
31
31
31
31
32
32
32
32
32
33
33
33
33
33
33
34
35
36
36
36
36
36
37
37
37
38
39
39
39
42
44
44
46
46
48
48
48
50
50
50
50
53
53
53
54
54
54
54
55
55
56
56
56
56
56
57
57
57
59
63
66
66
66
67
68
68
70
72
72
72
73
73
76
76
84
85
87
87
88
92
94
94
97
98
98
99
99
99
100
102
104
112
114
114
121
127
127
142
145
145
171
173
190
191
194
195
196
197
280
282
285
1
4
5
5
5
5
6
7
7
7
8
8
8
8
8
8
8
9
9
9
9
9
10
10
10
10
10
11
11
11
11
11
11
11
12
12
12
12
12
13
13
13
13
14
14
14
14
14
15
16
16
16
16
17
17
18
18
18
19
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
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
27
27
27
27
27
27
28
28
28
28
28
29
30
31
32
32
33
33
33
33
33
34
34
35
36
36
36
37
37
38
38
38
39
40
40
40
40
43
45
47
47
47
49
49
49
51
51
51
54
54
54
54
54
55
55
55
55
56
56
57
57
57
57
58
58
58
59
60
61
66
67
68
69
69
73
73
73
74
74
74
74
74
77
88
88
89
93
95
95
98
99
99
100
100
100
103
105
113
115
115
122
128
128
143
146
146
172
174
191
192
195
196
197
198
281
283
286
1
1
4
4
4
5
6
6
6
7
7
7
7
7
7
7
8
8
9
9
9
10
10
10
10
10
10
10
11
11
12
12
12
12
12
12
12
13
14
14
15
15
15
15
15
15
15
16
17
17
17
17
17
17
17
17
18
18
19
19
19
19
19
20
21
21
21
22
22
22
22
22
22
22
23
23
24
24
24
24
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
26
26
27
27
27
27
28
28
28
29
29
29
29
29
29
30
30
31
31
31
31
33
33
34
34
34
35
35
36
36
37
37
37
38
38
39
39
39
39
40
40
40
41
41
41
41
44
48
48
48
50
50
50
52
52
52
52
52
52
56
56
56
56
56
56
57
57
58
58
58
58
59
59
59
59
60
61
62
67
68
69
70
70
74
74
74
75
75
75
75
76
76
78
89
89
94
96
96
97
98
99
100
100
101
101
104
106
114
116
123
129
129
130
144
147
147
173
175
192
193
196
197
199
282
284
286
287
1
4
4
5
5
5
5
5
5
5
6
7
7
7
7
7
8
9
9
9
9
9
9
10
10
10
11
11
12
12
12
12
12
12
12
13
13
13
13
13
13
14
14
15
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
17
18
18
18
18
18
18
18
18
19
20
21
22
23
23
23
23
23
23
23
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
29
29
29
29
30
30
30
30
30
31
31
31
31
31
32
32
32
34
34
34
34
35
35
35
36
36
37
37
37
37
38
39
40
40
40
40
40
41
41
42
42
42
42
44
45
45
48
48
48
48
51
51
53
53
53
53
53
55
56
57
57
57
57
57
57
58
58
58
58
59
59
60
60
60
61
62
63
68
68
69
75
75
75
75
76
77
79
95
97
97
97
99
100
101
102
102
105
107
115
117
124
130
130
131
145
148
148
174
176
193
194
197
200
283
284
287
288
1
1
1
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
7
7
7
7
8
8
8
8
8
9
9
9
10
11
11
11
11
11
11
11
11
12
12
12
12
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
17
17
17
17
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
20
20
20
21
22
23
23
23
24
24
24
24
24
25
25
25
25
26
26
27
27
27
27
27
28
28
28
28
28
29
29
30
30
30
30
30
31
31
31
31
31
32
33
33
33
34
34
34
35
35
35
35
36
36
36
37
37
37
37
37
38
38
39
40
41
41
41
42
42
43
43
43
43
44
46
46
48
49
52
52
54
54
54
54
54
56
57
58
58
58
58
58
59
59
59
60
61
62
63
64
76
76
76
77
78
80
84
96
96
98
98
100
101
102
103
103
106
108
114
115
116
118
125
131
131
132
146
149
149
175
177
194
198
201
284
288
289
1
1
1
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
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
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
13
13
14
14
14
14
14
15
15
15
15
16
16
16
16
16
16
16
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
19
19
19
19
19
20
20
20
20
20
21
21
22
22
22
23
23
23
25
25
25
27
27
27
27
27
27
28
28
28
28
28
29
29
29
29
29
30
30
30
31
31
31
31
31
31
31
31
32
32
32
32
33
34
34
34
34
34
34
35
35
35
36
36
36
37
37
37
37
38
38
38
39
39
40
40
41
42
42
42
42
42
43
43
44
44
46
46
46
46
47
48
53
53
53
55
55
55
55
55
57
57
58
59
59
59
59
59
60
60
62
63
65
77
77
77
78
79
81
84
85
87
94
96
97
97
98
99
99
101
102
103
104
104
107
109
116
117
119
126
132
132
133
147
150
150
178
195
199
202
285
289
290
4
4
4
4
4
4
4
4
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
9
9
9
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
15
15
15
15
15
15
16
16
16
16
16
16
16
17
17
17
17
17
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
21
22
22
22
22
23
23
23
23
24
24
26
26
26
27
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
34
35
35
35
35
35
35
36
36
36
37
37
37
37
38
39
39
39
39
41
42
43
43
43
43
43
43
44
44
45
45
45
47
47
48
52
54
54
54
56
56
56
56
56
58
58
60
60
60
60
63
63
63
64
64
66
70
78
78
78
79
80
82
85
87
88
95
97
98
99
100
100
103
104
105
105
108
110
117
118
120
127
132
133
133
134
148
151
151
165
179
196
200
203
286
290
291
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
9
9
9
9
9
10
10
10
10
10
11
11
11
11
11
11
12
12
12
12
12
12
13
13
14
14
14
15
15
15
15
16
16
16
16
16
16
16
17
17
17
18
18
18
18
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
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
25
26
27
27
27
27
27
28
28
29
29
29
29
29
30
30
30
31
31
31
31
31
31
31
31
32
32
32
32
33
33
33
33
34
34
34
34
34
34
36
36
36
37
38
40
40
40
42
43
43
44
44
44
44
44
44
44
45
45
46
46
46
46
48
48
55
55
57
57
57
57
57
57
57
59
61
61
61
61
63
64
65
65
67
70
79
79
79
80
81
83
87
88
89
95
97
99
99
101
101
105
106
106
109
111
118
119
121
128
133
134
134
135
149
152
152
166
169
175
177
180
197
201
204
287
291
292
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
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
10
10
10
10
10
11
11
11
12
12
12
12
13
13
13
13
13
14
14
14
15
15
15
16
16
16
16
16
16
17
17
17
17
17
18
18
18
18
18
18
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
22
22
22
23
23
23
23
24
24
24
24
25
25
25
25
25
25
25
25
26
27
27
27
28
28
29
30
30
30
31
31
31
31
31
32
32
32
32
32
32
33
33
33
33
34
34
34
34
34
35
35
35
35
35
37
37
37
37
37
38
39
41
41
41
43
44
44
45
45
45
45
45
45
46
47
47
47
49
54
56
56
56
57
58
58
58
58
58
58
58
58
60
62
62
62
62
64
65
66
66
70
70
75
75
80
80
80
81
82
84
88
89
97
100
101
102
102
106
107
107
109
111
112
119
120
122
129
132
134
135
135
135
150
153
170
178
181
198
202
205
288
292
293
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
7
7
7
7
7
7
7
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
10
10
10
10
10
10
10
10
11
11
11
11
12
12
12
12
13
13
13
13
13
13
14
14
15
15
15
15
15
15
15
16
16
16
16
17
17
17
17
17
18
18
18
18
18
18
18
18
19
19
19
19
19
20
20
20
20
20
20
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
24
24
25
25
25
25
26
26
27
27
27
27
27
27
28
28
29
29
30
30
31
31
31
31
32
32
32
33
33
33
33
33
33
33
33
34
34
34
34
34
34
35
35
35
36
36
36
36
36
37
37
38
38
38
38
38
39
42
42
42
44
45
45
46
46
46
46
46
46
47
48
48
48
48
48
48
56
57
57
57
57
58
58
59
59
59
59
59
59
59
60
63
63
63
63
65
66
68
71
71
74
76
76
81
81
81
82
83
85
85
90
99
101
102
103
103
103
107
108
108
112
113
120
121
123
130
133
135
136
136
151
154
171
179
182
199
203
206
289
293
294
4
4
4
4
4
5
5
5
5
5
5
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
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
12
12
12
13
13
13
14
14
14
15
15
15
16
16
16
16
16
16
16
17
17
17
17
18
18
18
18
18
18
18
19
19
19
19
19
19
20
20
20
20
20
21
21
21
21
21
22
22
23
23
23
23
23
23
23
23
23
23
23
24
24
24
25
25
25
25
25
25
25
25
25
26
27
27
27
27
27
28
28
28
29
29
30
31
31
32
32
32
33
33
34
34
34
34
34
34
34
35
35
35
35
35
35
35
36
36
36
37
37
37
37
37
39
39
39
40
43
43
43
43
44
46
46
46
47
47
47
47
47
47
48
48
49
49
49
56
56
57
58
58
58
59
60
60
60
60
60
60
60
62
64
64
64
64
64
66
67
69
69
75
76
76
77
81
82
82
83
84
86
86
87
89
91
100
101
102
104
104
104
108
109
109
113
114
121
122
122
124
124
131
134
136
137
137
152
155
172
180
183
200
204
207
290
294
295
4
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
13
13
13
13
13
13
14
14
14
15
15
16
16
16
16
16
17
17
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
21
21
21
21
21
21
21
22
22
22
22
22
22
23
23
24
24
24
25
25
25
25
25
25
25
25
25
26
27
27
28
28
28
29
29
29
30
30
30
31
32
33
34
34
35
35
35
35
35
35
36
36
36
36
36
37
37
37
38
38
38
38
38
38
40
40
40
43
43
44
44
44
44
47
48
48
48
48
48
48
49
50
50
50
56
57
57
58
58
59
59
59
59
60
60
60
61
61
61
61
61
61
63
65
65
65
65
65
67
68
76
76
77
78
83
84
84
85
87
87
87
88
89
103
105
105
105
109
110
110
114
115
122
125
125
132
135
137
138
138
153
156
173
181
184
201
205
208
291
295
296
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
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
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
12
12
12
12
12
12
12
12
12
12
13
14
14
14
14
14
14
15
15
15
16
16
17
18
18
19
19
19
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
22
22
22
23
23
23
23
23
23
23
24
24
24
25
25
25
25
26
26
26
27
28
29
30
30
30
31
31
32
33
34
34
34
35
35
35
35
35
35
36
36
36
36
36
36
37
37
37
37
37
37
37
38
38
38
39
39
39
39
39
40
41
44
44
45
45
45
45
48
49
49
49
49
49
51
51
51
57
58
58
59
59
60
60
60
60
61
61
62
62
62
62
62
62
64
66
66
66
66
66
69
77
78
84
85
86
88
88
88
90
104
106
106
106
110
111
111
115
116
123
126
126
133
135
135
137
137
138
139
139
154
157
174
182
185
202
206
209
292
296
297
1
1
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
12
12
12
12
12
12
13
13
13
13
13
13
13
13
14
14
15
15
15
15
16
16
16
16
16
16
16
16
16
18
18
18
18
18
19
19
19
19
19
19
19
20
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
23
23
24
24
24
24
25
25
26
26
26
27
28
29
29
29
29
29
29
29
29
29
29
29
29
30
30
31
31
32
32
33
34
35
36
36
36
36
37
37
37
37
38
38
38
38
39
39
40
40
40
40
40
41
42
44
45
45
46
46
46
46
49
49
49
50
50
50
50
52
52
52
57
58
58
60
60
60
61
61
61
61
62
62
63
63
63
63
63
63
65
67
67
67
67
67
67
70
71
78
85
86
87
89
89
89
91
105
107
107
107
111
112
112
116
117
124
127
127
134
135
137
138
138
139
140
140
155
158
175
183
186
203
207
210
293
297
298
1
1
1
1
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
9
9
9
9
9
9
9
9
9
10
10
10
10
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
13
13
13
13
14
14
14
14
14
14
14
14
14
14
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
18
18
18
18
19
19
19
20
20
20
20
20
21
22
22
22
22
22
23
23
23
23
23
23
24
25
25
25
25
25
26
26
26
27
27
27
27
27
27
27
29
29
29
30
30
30
30
30
30
30
31
32
32
33
33
35
35
36
37
37
37
37
37
37
38
38
38
38
39
39
39
39
40
40
40
41
41
41
41
41
41
43
44
45
46
47
47
47
49
49
50
50
50
51
51
51
51
53
53
53
57
57
58
59
59
59
59
59
60
61
61
61
62
62
62
62
63
64
64
64
64
64
66
68
68
68
68
71
71
76
86
87
88
89
90
90
97
106
108
108
108
112
113
113
117
118
125
128
128
135
137
138
139
139
141
141
156
159
176
184
187
204
208
211
211
294
298
299
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
7
7
7
7
7
7
8
8
8
8
8
8
8
8
9
9
9
9
9
9
10
10
10
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
14
14
14
14
14
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
20
20
21
21
21
21
21
22
23
23
23
23
24
24
24
24
24
25
25
26
26
26
26
26
26
26
26
27
27
28
28
28
28
28
29
29
30
30
30
31
31
31
31
31
31
31
31
32
33
34
34
35
35
36
37
37
37
37
38
38
38
38
38
38
39
39
39
41
41
41
41
42
42
42
42
46
47
48
49
50
51
51
51
52
52
52
52
54
54
54
58
59
59
60
60
60
60
61
62
62
63
63
64
64
64
65
65
65
65
65
67
67
67
69
69
69
69
72
76
76
77
87
88
88
89
89
90
91
91
97
99
107
109
109
109
113
114
114
118
119
126
129
129
135
136
137
138
139
157
160
177
185
188
205
209
209
212
212
295
299
300
1
4
4
4
4
5
5
5
5
5
5
5
5
5
6
6
6
6
7
7
7
7
7
7
7
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
11
11
11
12
12
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
18
18
18
19
19
19
19
19
19
19
19
20
20
20
20
21
21
21
21
21
21
22
22
22
24
24
24
25
25
25
25
25
26
27
27
27
27
27
27
27
27
27
27
27
28
28
29
29
29
29
29
29
29
30
30
30
30
31
31
32
32
32
32
32
33
34
34
34
35
35
36
36
37
37
39
39
39
39
39
39
40
40
40
42
42
42
43
47
49
50
51
52
52
52
53
53
53
55
55
55
57
59
59
60
60
61
61
61
62
63
64
64
64
66
66
66
66
66
67
68
68
68
70
70
70
73
75
76
77
78
88
88
88
89
89
90
90
91
92
92
95
100
108
110
110
110
114
115
115
119
120
127
130
130
135
137
138
139
161
178
186
189
206
213
213
296
300
301
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
11
11
11
11
12
13
13
13
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
16
16
16
16
16
17
17
17
17
17
17
18
18
18
18
18
18
18
19
19
19
19
20
20
20
21
21
21
21
21
22
22
23
23
23
23
24
24
25
25
25
25
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
31
31
31
32
32
32
32
33
33
33
33
34
35
35
35
35
35
36
36
37
38
38
40
40
40
40
41
41
41
42
42
43
43
43
44
44
50
51
52
53
53
54
54
56
56
56
60
60
61
61
62
63
65
65
67
67
67
67
67
68
69
69
69
69
69
71
71
71
71
71
74
76
78
79
88
89
89
90
90
91
91
92
93
93
101
101
109
111
111
111
115
116
116
120
121
128
131
131
135
138
139
140
162
179
187
190
207
214
214
297
301
302
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
6
6
6
6
6
6
7
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
12
12
12
12
12
12
12
12
13
13
13
14
14
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
17
17
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
20
20
20
20
23
23
24
26
26
26
26
26
26
27
27
27
27
27
28
28
28
29
29
29
29
29
29
29
29
29
30
30
30
30
30
31
31
31
31
31
32
33
33
33
34
34
34
34
35
36
36
36
36
37
37
37
38
38
39
39
40
41
41
41
41
42
42
42
43
44
44
44
45
45
45
51
53
54
54
55
55
55
57
57
57
59
60
61
61
61
62
64
64
66
66
68
68
68
69
69
70
72
72
72
72
75
76
79
80
89
90
90
91
91
92
92
94
94
102
102
110
112
112
112
116
117
117
121
122
129
132
132
136
139
140
163
180
188
191
208
215
215
298
302
303
1
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
10
10
10
10
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
13
13
13
13
13
14
14
14
15
15
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
19
19
19
19
19
19
19
19
19
20
20
21
21
21
22
23
23
24
25
25
27
27
27
27
27
27
28
28
28
28
29
29
29
29
30
30
30
30
31
31
31
31
32
32
32
32
32
32
32
32
33
33
33
33
34
34
35
35
36
36
37
38
38
38
39
39
39
39
39
39
40
40
40
40
41
42
42
42
42
43
43
43
44
45
45
45
45
45
46
46
49
52
55
55
56
56
56
57
58
58
58
59
59
60
61
61
62
65
65
67
67
67
67
67
69
69
69
70
70
71
73
73
76
77
79
81
90
91
92
93
95
95
101
103
103
111
113
113
113
117
118
118
122
123
130
133
133
136
140
164
181
189
192
209
216
216
299
303
304
4
4
4
4
4
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
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
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
14
14
15
15
15
15
16
16
16
16
16
16
16
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
21
21
22
23
23
24
24
24
26
26
27
28
28
28
29
29
29
29
29
29
30
31
31
32
33
33
33
33
33
34
34
34
35
35
37
38
39
39
39
39
39
39
39
40
40
41
41
41
41
41
42
43
43
43
43
44
44
44
45
46
46
46
46
47
47
48
49
50
53
56
56
57
57
57
57
58
59
59
59
59
60
61
62
62
66
66
67
67
68
68
68
68
68
68
70
70
70
71
72
74
74
74
77
79
80
90
92
93
96
96
102
104
104
104
112
114
114
118
119
119
123
124
131
134
134
140
165
182
190
193
210
217
217
300
304
305
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
13
13
13
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
16
16
16
16
16
16
16
17
17
17
17
17
17
17
18
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
23
24
25
26
27
27
29
30
30
30
30
31
31
32
32
32
32
33
33
34
34
34
34
35
35
36
37
38
39
40
40
40
40
40
41
41
41
42
42
42
42
43
44
45
45
45
46
46
47
47
47
48
48
48
50
51
54
57
57
58
58
58
58
59
60
60
60
60
61
62
63
68
68
69
69
69
69
69
71
71
71
72
73
75
75
75
78
80
81
93
94
95
97
97
103
105
113
115
115
119
120
120
124
125
132
135
135
166
183
191
194
211
218
218
301
305
306
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
19
19
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
22
22
22
22
22
23
24
25
25
25
25
25
25
26
26
27
27
28
28
30
30
30
31
31
31
31
31
32
32
32
33
33
33
33
33
34
34
35
35
35
37
39
39
39
39
39
40
40
40
41
41
41
41
41
41
41
43
43
44
44
46
46
46
46
47
47
47
48
48
49
49
49
49
51
52
55
57
58
59
59
59
59
60
61
61
61
61
61
62
63
64
69
69
69
70
70
72
72
72
72
74
76
76
76
79
80
81
82
95
96
98
98
104
104
106
106
112
113
114
116
116
120
121
121
125
126
133
136
136
167
184
192
195
212
219
219
302
306
307
1
1
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
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
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
23
23
23
23
23
23
24
25
25
26
26
26
27
27
28
29
29
30
30
31
31
32
32
32
32
32
33
33
34
34
34
35
35
35
35
36
36
36
38
38
39
39
39
39
40
40
40
40
41
41
41
42
42
42
43
44
44
45
47
47
47
47
48
48
49
49
50
50
50
52
56
59
60
60
60
60
61
62
62
62
62
63
64
70
70
71
71
71
71
73
73
73
73
73
75
77
77
77
80
82
83
96
97
99
99
107
107
114
115
117
117
121
122
122
126
127
134
137
137
168
185
193
196
213
220
220
303
307
308
1
1
1
1
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
19
19
19
19
19
19
19
19
19
20
20
20
21
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
24
24
24
24
24
25
26
26
27
27
27
28
28
29
29
30
30
30
31
31
32
32
33
33
33
33
34
35
35
35
36
36
36
37
37
37
39
39
39
39
39
39
39
41
41
41
41
42
42
42
43
43
43
45
45
48
48
48
48
49
49
50
50
51
51
53
57
60
61
61
61
61
61
61
62
62
62
63
63
63
63
64
71
71
72
72
74
74
74
74
74
76
78
78
78
78
81
83
97
98
100
100
104
106
106
106
108
108
115
116
118
118
122
123
123
127
128
135
138
138
169
186
194
197
214
221
221
304
308
309
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
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
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
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
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
20
20
20
20
21
21
21
21
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
25
25
25
25
25
25
25
26
27
27
27
29
29
30
30
30
30
30
31
31
32
32
32
32
33
33
34
34
34
35
35
36
36
37
38
38
38
39
39
40
40
40
40
40
40
40
40
40
40
41
41
41
42
42
42
43
43
43
43
43
43
43
43
43
44
48
49
49
49
49
50
50
50
50
51
51
52
52
52
52
52
54
58
61
61
62
62
62
62
63
63
63
64
64
65
72
72
74
75
75
75
75
77
79
79
79
79
82
98
99
101
101
104
104
104
106
107
107
107
116
117
119
119
123
124
124
128
129
136
139
139
170
187
195
198
215
222
222
305
309
310
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
7
7
7
7
7
7
7
8
8
8
8
9
9
9
9
9
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
21
21
21
21
21
22
22
22
23
23
24
24
24
24
24
24
24
24
24
24
25
25
26
26
26
26
26
26
26
26
26
27
30
30
31
31
31
31
32
33
33
33
34
35
35
35
35
35
35
35
35
36
36
36
37
37
38
39
39
39
40
40
41
41
41
42
42
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
45
50
50
50
50
51
51
52
52
53
53
53
53
59
62
62
62
63
63
63
63
64
64
65
65
68
70
73
73
76
76
76
76
78
80
80
80
80
83
92
99
100
102
102
107
108
108
108
117
118
120
120
124
125
125
129
130
137
140
140
140
171
188
196
199
216
223
223
306
310
311
4
4
4
4
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
8
8
8
8
8
8
8
9
9
9
9
9
10
10
10
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
18
18
18
19
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
21
21
22
22
22
22
22
22
23
23
23
23
23
23
24
25
25
25
25
25
25
25
25
25
27
27
27
27
27
27
27
28
30
31
31
31
33
33
35
36
36
36
36
36
36
36
37
37
38
38
39
40
40
42
42
42
43
44
44
44
44
45
45
45
45
45
45
45
45
45
46
50
51
51
51
51
52
52
53
53
54
54
54
54
60
61
61
62
62
63
63
63
63
64
64
64
64
66
66
69
69
69
69
74
74
77
77
77
77
79
81
81
81
81
84
90
92
100
101
103
103
104
108
109
109
118
119
121
121
125
126
126
130
136
138
140
141
141
141
172
189
197
199
200
217
224
224
307
311
312
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
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
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
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
19
19
19
21
21
21
21
21
21
21
21
21
21
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
25
26
26
26
26
26
28
28
28
28
28
28
28
28
30
30
30
30
32
32
34
36
37
37
37
37
37
37
38
38
39
40
40
40
40
41
41
42
42
43
43
44
45
45
45
45
46
47
49
52
52
52
53
53
54
54
55
55
61
62
62
63
64
64
64
65
65
65
65
67
67
70
70
70
75
75
78
78
78
78
80
82
82
82
82
85
91
92
101
102
104
104
105
105
119
120
120
122
122
122
126
127
127
137
139
141
142
142
173
190
197
200
201
218
225
225
308
312
313
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
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
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
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
20
21
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
24
24
24
24
25
25
25
26
26
27
27
27
27
27
27
28
29
29
29
29
29
31
31
31
33
33
34
34
35
35
36
37
38
38
38
40
41
41
41
41
42
42
42
43
43
43
43
43
43
43
44
44
45
47
48
48
49
50
52
52
53
53
53
54
55
55
56
56
61
62
62
63
63
64
65
65
65
66
66
66
66
68
68
70
76
76
79
79
79
79
81
81
83
83
83
83
86
92
93
102
103
105
105
120
123
123
123
127
128
128
137
140
141
143
143
174
191
201
202
219
226
226
309
313
314
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
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
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
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
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
20
20
20
20
20
20
20
20
20
22
23
23
23
23
23
23
23
23
23
23
23
24
24
24
25
25
25
25
26
26
26
26
27
27
28
28
28
28
28
30
30
30
30
30
31
31
32
34
34
34
35
35
35
36
36
37
38
39
39
41
42
43
43
43
44
44
44
44
44
44
44
44
44
44
45
45
46
48
48
49
50
50
50
51
53
53
54
54
54
55
56
56
57
57
62
62
63
63
64
64
64
65
66
66
67
67
67
67
67
69
69
69
77
77
80
80
80
80
80
81
82
82
84
84
84
84
87
92
93
94
103
104
106
106
109
121
124
124
124
128
129
129
141
141
144
144
175
192
202
203
220
227
227
310
314
315
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
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
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
20
21
21
21
21
21
21
21
21
21
21
21
21
21
23
23
24
24
24
24
24
24
24
24
24
24
25
26
27
27
28
29
29
29
29
29
31
31
31
31
31
31
31
31
33
33
33
35
35
35
35
35
36
37
37
38
39
40
40
42
43
44
44
44
45
45
45
45
45
45
45
45
46
47
49
50
51
51
51
52
52
52
54
55
55
55
56
57
57
58
58
61
63
63
64
64
65
65
65
67
68
68
70
70
70
78
78
80
81
81
81
81
82
83
83
85
85
85
85
88
93
94
95
104
105
107
109
122
125
125
125
129
130
130
142
145
145
176
193
203
204
221
228
228
311
315
316
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
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
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
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
19
19
19
19
19
19
19
20
20
20
20
20
20
21
21
22
22
22
22
22
22
22
22
23
24
25
25
25
25
25
25
25
25
25
25
27
28
29
30
30
30
30
30
30
31
31
32
32
32
32
32
34
34
36
36
36
36
36
37
38
38
39
39
39
41
41
43
44
45
45
45
45
47
48
50
51
52
53
53
55
56
56
56
57
57
57
58
59
59
61
63
64
65
67
67
68
69
69
71
71
71
79
79
82
82
82
82
83
84
84
86
86
86
86
89
94
95
96
105
106
108
123
126
126
126
130
131
131
143
146
146
177
194
204
205
222
229
229
312
316
317
1
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
7
7
7
7
7
7
7
7
7
7
7
7
7
7
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
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
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
19
20
20
20
20
20
20
20
21
21
21
21
21
22
22
23
23
23
23
23
23
23
23
25
25
26
26
26
26
26
26
26
26
26
26
27
28
29
30
31
31
31
31
31
31
31
32
32
33
33
33
33
33
33
33
33
35
35
36
36
36
36
37
38
38
39
39
39
39
40
40
40
42
42
44
44
44
44
45
46
46
48
49
51
52
54
54
56
57
57
57
58
58
59
60
60
62
62
62
65
65
65
66
68
69
70
70
72
72
72
80
80
83
83
83
83
84
85
87
87
87
87
90
95
95
97
106
107
109
109
109
124
127
127
127
131
132
132
144
147
147
178
195
205
206
223
230
230
313
317
318
1
1
2
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
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
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
16
16
16
16
16
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
20
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
23
23
23
23
24
24
24
24
24
26
26
26
26
27
27
27
27
27
27
27
27
27
28
28
28
29
31
31
32
32
32
32
32
33
34
34
34
34
34
34
34
34
36
37
37
38
38
39
40
40
41
41
41
42
42
43
43
45
45
45
45
45
45
45
45
45
45
45
46
47
47
50
52
53
54
54
55
55
57
58
58
58
59
59
60
61
61
62
65
66
66
66
67
69
70
70
70
71
71
73
73
73
81
81
84
84
84
84
86
88
88
88
88
91
95
97
98
105
107
108
110
110
110
125
128
128
128
132
133
133
145
148
179
196
206
207
224
231
231
314
318
319
1
1
1
2
3
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
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
16
16
16
16
16
17
17
17
17
17
17
17
18
18
19
19
19
19
19
19
19
20
20
20
20
21
21
21
21
22
22
22
22
22
22
22
22
22
22
22
23
23
25
25
25
25
25
27
28
28
28
28
28
28
28
28
28
28
29
29
29
30
31
32
32
33
33
33
33
33
33
34
34
34
34
35
35
35
35
35
35
35
36
36
36
37
37
37
37
38
39
39
40
41
43
43
44
44
46
46
46
46
46
46
46
46
46
48
48
51
52
53
54
56
56
58
59
59
59
60
60
61
62
62
65
66
67
67
67
68
69
70
71
71
71
72
72
74
74
74
82
82
85
85
85
85
89
89
89
89
92
97
98
99
106
106
108
109
111
126
129
129
133
134
146
149
180
197
207
208
225
232
232
315
319
320
3
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
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
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
15
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
20
20
20
20
20
20
22
22
23
23
23
23
23
23
23
23
24
24
26
26
26
26
26
26
26
26
28
29
29
29
29
29
29
29
29
29
29
31
31
32
33
34
34
34
34
34
34
34
34
35
36
36
36
36
36
36
36
37
37
37
38
38
38
39
39
39
39
40
40
42
44
44
45
45
46
46
46
46
46
46
47
49
49
52
52
53
54
55
57
57
60
60
60
61
61
62
62
62
63
63
65
66
67
69
69
70
71
71
71
72
72
73
73
75
75
75
83
83
86
86
86
86
90
90
90
90
93
95
97
98
99
109
110
112
127
130
130
134
147
150
181
198
208
209
226
233
233
316
320
321
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
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
12
12
12
12
13
14
14
14
14
15
15
15
15
15
15
15
15
15
16
16
16
17
17
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
21
21
21
21
22
22
23
24
24
24
24
24
24
24
24
24
25
26
27
27
27
27
27
27
27
29
30
30
30
30
30
30
30
30
30
32
32
32
33
34
34
34
35
35
35
35
35
35
35
36
37
37
37
37
37
37
37
37
38
39
39
39
40
40
40
40
41
43
45
45
45
46
46
47
47
47
47
48
50
50
53
53
55
56
61
61
61
62
62
63
63
63
63
63
64
65
65
65
65
70
70
71
71
72
72
73
73
74
74
76
76
76
84
84
84
87
87
87
87
91
91
91
91
94
95
98
99
110
110
111
113
128
131
131
148
151
182
199
209
210
227
234
234
317
321
322
2
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
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
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
14
14
15
15
15
15
15
16
16
16
16
16
17
17
17
17
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
21
22
22
22
22
24
24
25
25
25
25
25
25
26
27
28
28
28
28
28
31
31
31
31
31
31
31
31
31
33
34
35
35
35
35
36
36
36
36
36
36
36
36
38
38
38
38
38
38
38
39
40
41
41
41
42
46
46
47
47
47
47
47
47
48
48
49
51
51
54
55
56
57
62
62
62
62
63
63
64
64
65
65
66
66
66
66
71
71
72
73
73
74
75
75
77
77
77
85
85
85
88
88
92
92
92
92
95
95
99
100
110
111
112
114
129
132
132
141
149
152
183
200
210
211
228
235
235
318
322
323
3
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
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
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
15
15
15
15
15
15
15
16
17
17
17
17
18
18
18
18
19
19
20
20
20
20
20
20
20
20
20
20
20
20
20
21
21
22
22
22
22
23
23
23
25
26
26
26
26
26
26
27
28
29
29
29
29
32
32
32
32
32
32
32
32
32
34
35
36
36
37
37
37
37
37
37
37
37
38
39
39
39
39
39
39
40
41
43
43
43
45
45
45
45
47
47
47
47
47
48
48
48
48
49
49
50
52
52
54
55
55
56
57
58
62
63
63
63
63
63
63
64
64
65
66
67
67
67
72
72
73
74
75
76
76
76
78
78
78
84
86
86
86
89
89
93
93
93
93
95
96
96
97
100
105
106
112
114
115
130
133
133
141
142
150
153
184
201
211
212
229
236
236
319
323
324
2
2
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
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
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
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
15
15
15
16
16
16
16
16
16
16
16
16
17
18
18
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
22
22
23
23
23
23
23
24
24
24
26
26
27
27
27
27
27
27
27
28
30
30
30
30
32
32
32
32
32
32
32
32
33
33
33
33
33
35
36
36
36
36
37
37
37
38
38
38
38
38
38
38
38
38
38
40
40
40
40
40
44
46
46
46
46
48
48
49
49
49
49
51
53
53
53
53
54
56
56
57
58
59
63
63
64
64
64
64
65
65
66
67
67
71
72
73
75
76
77
77
77
79
79
79
85
87
87
87
90
90
94
94
94
95
96
97
98
107
115
116
131
134
134
137
142
151
154
185
202
212
213
230
237
237
320
324
325
2
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
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
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
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
18
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
22
22
22
22
22
22
22
22
22
23
23
23
23
23
24
24
24
25
25
25
26
26
27
27
27
28
28
28
28
28
28
29
31
31
31
31
33
33
33
33
34
34
34
34
34
35
36
36
37
37
39
39
39
39
39
39
41
41
41
41
41
41
41
45
45
46
47
47
49
49
50
50
52
53
54
54
54
57
57
58
59
60
63
63
64
64
65
65
66
66
66
67
68
71
71
72
74
76
77
78
78
78
80
80
80
86
88
88
88
91
91
95
95
95
98
99
108
116
117
132
135
135
138
142
152
155
186
203
213
214
231
238
238
321
325
326
1
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
18
18
18
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
24
24
24
24
25
25
25
26
26
26
26
27
27
28
28
29
29
29
29
29
29
29
29
30
31
32
32
32
32
34
34
34
34
34
35
35
35
35
35
35
35
36
37
37
38
38
40
40
40
40
40
40
42
42
42
42
42
42
42
42
45
46
46
47
47
47
51
51
53
53
54
54
55
55
55
55
58
58
60
61
64
64
66
66
67
67
67
67
68
69
69
70
71
72
73
75
77
78
79
79
79
81
81
81
87
89
89
89
92
92
96
96
96
99
109
110
110
117
118
133
136
136
138
156
187
204
214
215
232
239
239
322
326
327
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
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
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
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
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
19
19
20
20
21
21
21
21
22
22
22
22
22
22
22
23
23
23
24
24
24
24
24
24
24
25
25
25
25
26
27
27
27
27
27
27
28
29
29
29
29
29
29
30
30
30
30
30
30
31
32
32
32
33
33
33
33
34
34
35
35
35
35
35
35
35
36
36
36
36
36
37
38
38
39
39
40
40
40
41
41
41
41
42
43
43
43
43
43
43
46
46
47
47
47
47
47
48
48
52
52
54
54
54
55
56
56
56
58
59
61
62
65
67
67
68
68
69
70
70
71
73
74
76
78
79
80
80
80
82
82
82
87
89
90
90
90
93
93
97
97
100
110
111
111
118
119
134
137
137
142
157
188
205
215
216
233
240
240
323
327
328
1
1
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
15
15
15
15
15
15
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
20
21
21
21
22
22
22
22
23
23
23
24
24
25
25
25
25
25
25
26
26
26
27
27
28
28
28
28
28
28
29
30
30
30
30
30
30
31
31
31
31
31
32
32
32
33
33
33
33
34
34
34
34
34
35
36
36
36
36
36
36
36
36
37
37
37
37
37
38
39
39
39
39
39
40
40
40
41
41
42
42
42
42
43
43
43
44
44
44
44
44
45
46
46
47
47
47
47
47
48
48
48
49
49
53
53
55
57
57
57
59
60
62
63
66
66
68
68
69
69
70
71
71
71
74
75
77
79
80
81
81
81
83
83
83
90
91
94
94
96
98
98
100
101
106
111
119
120
135
138
138
158
189
206
216
217
234
241
241
324
328
329
1
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
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
8
8
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
12
12
12
12
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
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
21
21
21
23
24
24
25
25
25
26
26
27
27
28
29
29
29
29
30
30
30
30
31
31
31
31
31
32
32
32
32
32
32
33
33
33
34
34
34
34
34
34
35
35
35
35
36
36
37
37
37
37
37
37
38
38
38
38
38
38
39
39
39
39
40
40
40
40
40
40
40
41
41
41
41
42
42
43
43
43
43
43
43
43
44
44
44
45
45
45
45
45
46
46
47
47
47
47
48
49
49
49
50
50
54
54
55
56
58
58
58
60
63
64
67
67
67
67
67
69
69
70
70
71
72
72
72
74
76
78
80
81
82
82
82
84
84
91
95
95
97
99
100
101
107
107
112
120
121
136
139
139
159
190
207
217
218
235
242
242
325
329
330
1
1
1
2
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
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
8
8
8
8
8
8
8
8
8
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
11
11
11
11
11
11
11
11
12
12
12
12
12
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
16
16
16
16
16
16
17
17
17
17
18
18
18
18
18
18
19
19
20
20
20
20
20
20
21
21
21
21
21
21
22
23
24
24
24
25
25
26
26
26
26
27
27
28
28
29
30
30
30
30
31
31
32
32
32
32
33
33
33
33
33
33
34
34
35
35
35
35
35
35
37
38
38
38
38
38
38
38
38
39
39
39
39
40
40
41
41
41
41
41
42
42
42
43
43
43
44
44
44
44
44
45
45
46
46
46
46
47
48
48
49
50
50
50
50
50
51
51
54
55
55
55
56
57
58
58
59
59
64
65
68
68
68
68
70
70
71
71
72
73
73
74
75
79
81
82
83
83
83
85
85
89
96
96
97
100
100
111
113
121
122
137
140
140
160
191
208
218
219
236
243
243
326
330
331
1
1
1
1
1
2
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
12
12
12
12
12
13
13
13
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
17
17
17
17
17
17
17
17
17
18
18
18
18
18
19
19
19
19
19
19
20
20
20
20
21
21
22
22
22
22
23
24
25
25
25
26
26
26
27
27
27
27
27
28
28
28
29
29
29
29
29
30
31
31
31
32
32
33
33
33
33
34
34
34
34
34
35
35
36
36
37
37
38
39
39
39
39
39
39
39
39
40
40
40
40
41
42
42
43
44
45
45
45
45
45
46
47
47
47
47
47
48
50
50
50
51
51
51
52
52
54
56
56
56
58
58
59
59
60
60
65
66
68
69
71
71
72
72
73
74
74
75
76
80
82
83
84
84
84
86
86
87
89
90
97
97
101
114
122
123
138
141
141
161
192
209
219
220
237
244
244
327
331
332
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
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
13
13
13
13
13
13
14
14
14
14
14
15
15
15
15
15
15
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
18
18
18
18
18
18
18
19
19
19
20
20
20
20
20
21
21
21
22
22
23
23
23
23
24
24
25
26
26
26
26
27
27
27
28
28
28
28
28
29
29
29
29
30
30
31
31
31
32
32
32
33
34
34
34
34
35
35
35
35
35
36
37
37
37
38
38
39
39
39
39
40
40
40
40
40
40
40
40
41
41
41
41
43
43
43
44
45
46
46
46
46
47
47
48
48
48
49
51
51
51
52
52
52
55
57
57
58
59
59
59
60
61
61
66
67
70
72
72
73
73
74
75
75
75
76
77
81
83
84
85
85
85
87
87
87
90
91
98
98
102
111
115
123
124
139
142
142
162
193
210
220
221
238
245
245
328
332
333
1
1
1
1
1
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
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
17
17
17
17
17
18
18
18
18
18
18
19
19
20
20
21
21
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
26
27
28
28
28
29
29
30
30
30
32
32
32
33
33
35
35
35
35
35
35
36
36
36
36
37
38
39
39
40
40
40
40
40
40
41
41
41
41
41
41
41
41
42
42
42
42
43
44
45
46
46
47
47
47
47
47
48
49
49
49
50
51
51
52
52
53
53
53
55
58
58
58
59
60
60
62
62
67
68
71
73
73
74
74
75
76
76
77
78
82
84
85
86
86
88
88
91
92
99
99
103
116
124
125
140
143
143
163
194
211
221
222
239
246
246
329
333
334
1
2
2
2
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
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
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
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
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
18
18
19
19
19
19
20
20
21
21
21
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
25
26
27
29
29
29
30
30
31
31
32
32
33
33
34
34
36
36
36
36
36
36
37
37
37
37
38
39
41
41
41
41
41
41
42
42
42
42
42
42
42
42
43
43
43
43
45
45
46
47
47
48
48
48
48
48
49
50
50
51
53
53
54
54
54
59
59
59
60
63
63
64
68
72
74
74
75
75
76
77
77
78
83
87
87
89
92
100
100
104
117
125
126
141
144
144
164
195
212
222
223
240
247
247
330
335
1
2
2
3
3
3
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
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
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
14
14
14
14
14
14
14
14
15
15
15
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
18
18
18
18
19
19
19
20
20
20
20
21
21
21
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
25
26
26
26
27
28
29
30
30
30
30
30
31
31
32
34
35
35
37
37
37
37
37
37
38
38
38
38
39
40
40
40
41
42
42
42
43
43
43
43
43
43
43
43
44
44
44
44
45
47
47
48
48
48
48
49
49
49
49
50
51
51
51
52
54
54
55
60
60
64
64
69
73
75
75
76
76
77
78
78
84
88
88
90
101
101
101
101
105
118
126
127
138
142
145
145
165
196
213
223
224
241
248
331
336
1
1
1
1
2
2
2
3
3
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
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
10
10
10
10
10
10
10
10
10
10
11
11
11
11
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
15
15
16
16
17
17
17
17
17
18
18
18
19
19
19
19
20
20
20
20
20
20
20
21
21
21
21
21
22
22
23
23
23
23
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
27
27
28
28
30
30
31
31
31
32
32
33
35
36
36
36
37
37
38
38
38
38
38
38
39
39
39
39
40
40
41
41
41
41
43
43
44
44
44
44
44
44
44
44
45
45
45
45
46
47
49
49
50
50
50
51
52
52
52
52
53
56
59
61
63
64
65
65
68
68
70
74
76
76
77
78
79
79
85
89
89
91
101
101
102
102
102
106
107
119
127
128
139
143
146
166
197
214
224
225
242
249
332
337
2
2
3
3
3
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
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
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
16
16
16
17
17
18
18
18
18
18
18
18
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
22
22
22
22
22
22
23
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
27
27
27
27
27
27
28
28
28
28
28
29
30
32
32
32
33
33
34
36
37
37
38
38
39
39
39
39
39
39
40
40
40
40
41
41
41
41
41
42
44
45
45
45
45
45
45
45
45
46
46
46
46
50
50
51
51
51
52
52
53
53
53
53
57
60
60
62
66
66
67
69
69
71
75
77
77
78
79
80
80
86
90
90
92
92
97
102
103
103
107
108
111
111
120
128
129
142
142
144
147
167
198
215
225
226
243
250
333
338
1
1
1
1
1
2
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
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
9
9
9
9
10
10
10
10
10
11
11
11
11
11
11
11
11
12
12
12
12
12
13
13
14
14
14
14
14
14
15
16
16
16
16
16
16
16
16
17
17
17
17
18
18
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
21
22
22
22
22
22
22
23
23
23
23
23
24
24
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
27
27
27
27
27
27
28
28
28
28
29
29
29
29
29
29
30
31
31
33
33
33
33
34
34
35
37
38
38
38
39
39
40
40
40
40
40
41
41
41
41
41
41
42
42
42
42
42
42
42
43
43
43
45
46
46
46
46
47
47
47
47
48
51
51
52
52
53
53
54
54
54
58
59
60
60
60
61
63
67
67
68
69
69
70
72
76
78
78
79
80
81
81
83
85
87
91
91
92
93
93
98
104
104
108
112
112
112
112
121
129
130
143
143
143
143
145
148
168
199
216
226
227
244
251
333
334
339
2
2
2
2
2
3
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
7
7
7
7
7
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
14
14
15
15
15
15
15
16
17
17
17
17
17
17
18
18
18
19
19
19
19
19
20
20
20
21
21
21
21
21
22
22
22
22
23
23
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
26
27
27
27
27
27
27
27
27
28
28
28
29
29
29
29
29
30
30
30
31
32
33
34
34
35
35
36
38
38
39
39
40
41
41
41
41
41
42
42
42
42
42
43
43
43
44
44
44
46
47
47
47
47
48
48
48
48
48
49
51
52
52
53
53
54
54
55
55
55
59
60
60
61
62
64
68
68
69
69
70
71
73
76
77
79
79
80
81
82
82
84
86
86
88
88
92
92
93
94
98
105
105
109
112
112
113
113
122
130
131
143
143
144
144
146
149
169
200
217
227
228
245
252
333
334
335
340
1
1
1
2
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
7
7
7
8
8
8
8
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
12
12
12
12
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
15
15
16
16
16
17
18
18
18
19
19
20
20
20
21
21
21
21
21
22
22
22
22
22
22
23
23
24
24
24
25
25
25
25
25
25
25
25
25
26
26
26
26
26
27
27
27
27
27
27
28
28
28
29
29
30
30
30
31
31
31
34
35
35
36
37
40
40
41
42
42
42
42
43
43
43
43
43
43
44
44
45
45
45
46
47
48
48
48
48
48
48
49
49
49
49
49
51
51
52
52
53
53
54
54
55
55
56
56
56
60
63
65
69
69
70
71
74
75
76
77
78
80
80
81
82
83
83
87
89
93
93
95
106
106
110
113
114
114
123
131
132
144
145
145
147
150
170
201
218
228
229
246
253
335
336
341
1
1
2
2
2
3
3
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
6
6
7
7
7
7
7
7
7
8
8
8
8
8
8
9
9
9
9
9
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
13
13
13
13
13
13
14
14
14
14
14
15
15
15
15
15
15
17
18
18
18
19
19
19
20
20
21
21
21
21
21
21
22
22
22
23
23
23
23
23
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
27
27
27
27
27
27
28
28
29
29
29
29
30
30
31
31
31
31
35
36
36
36
37
37
38
41
41
41
43
43
43
43
43
44
44
44
44
44
45
45
45
47
47
47
48
48
48
49
49
49
49
49
49
49
49
49
50
50
50
50
50
51
51
52
53
53
54
54
55
55
56
56
57
57
57
59
59
61
64
66
68
70
70
71
72
75
76
76
77
77
78
79
81
81
82
82
83
83
84
88
90
94
94
96
107
107
111
112
114
124
132
133
143
145
145
145
147
147
148
151
152
152
171
202
219
229
230
247
247
247
254
336
337
342
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
3
3
4
4
5
5
5
5
5
5
5
6
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
14
14
14
14
15
15
15
15
16
16
16
18
19
19
19
20
20
20
21
21
21
22
22
22
23
23
23
24
24
24
24
24
24
25
25
25
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
28
28
28
29
29
30
30
30
31
32
32
36
37
37
38
38
38
39
41
41
42
42
43
44
44
44
44
45
45
45
45
45
46
48
48
49
49
50
50
50
50
50
50
50
50
50
51
51
51
51
51
52
53
54
55
55
55
55
56
57
57
58
58
58
60
62
65
67
69
71
71
73
77
78
78
79
79
82
82
83
84
84
85
89
91
95
95
97
108
108
112
112
113
125
133
134
139
143
144
146
148
149
152
153
172
203
220
230
231
248
248
255
337
338
343
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
3
4
4
4
4
5
5
5
5
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
9
9
9
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
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
16
16
16
16
16
17
17
17
19
19
19
19
20
20
20
20
21
21
21
21
22
22
22
22
22
22
23
24
24
24
25
25
25
25
25
26
26
26
26
27
27
27
27
27
27
28
28
28
28
28
28
28
28
29
29
29
29
29
30
31
31
31
31
32
33
33
33
33
36
37
38
38
38
39
39
39
39
40
41
41
42
42
42
42
43
43
43
43
43
43
44
45
45
45
45
45
45
45
45
45
46
46
46
46
46
46
46
46
47
50
50
51
51
51
51
51
51
51
51
52
52
52
52
52
53
55
55
55
56
56
57
58
58
59
59
59
61
63
66
68
69
69
70
72
72
74
79
79
80
83
83
83
83
83
83
84
85
85
86
87
87
87
87
90
92
96
96
98
102
109
109
112
113
114
126
134
135
143
145
147
149
150
153
154
173
204
221
231
232
249
249
256
338
339
344
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
3
3
3
3
3
3
3
3
3
3
3
4
4
4
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
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
10
10
10
10
10
10
11
11
11
11
12
12
12
12
12
12
12
12
13
13
13
14
14
14
14
15
15
15
15
15
15
15
15
15
16
16
16
17
17
17
18
18
18
18
18
18
19
20
20
20
20
20
20
20
21
21
21
21
22
22
22
22
22
22
22
22
22
23
23
23
23
24
25
25
26
26
26
26
26
27
27
27
28
28
28
28
28
29
29
29
29
29
29
30
30
30
30
30
30
31
32
32
32
32
32
33
33
33
34
34
34
36
36
37
38
39
39
39
39
39
39
40
40
41
41
42
42
42
42
43
43
43
43
43
44
44
44
45
45
45
46
46
46
47
47
47
47
47
47
47
48
51
52
52
52
52
53
53
53
53
53
54
56
57
58
59
60
60
60
61
61
61
62
67
68
68
69
69
70
70
71
73
75
75
80
81
84
84
84
84
86
86
87
88
88
91
93
93
97
99
102
102
108
108
110
110
112
113
114
115
127
136
139
143
144
146
148
150
154
155
174
205
222
233
250
257
339
345
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
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
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
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
14
14
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
16
16
17
17
18
18
18
18
19
19
19
19
19
19
19
19
19
20
21
21
21
21
21
21
21
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
26
26
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
28
28
28
28
29
29
29
29
29
29
29
29
29
29
30
30
30
30
31
31
31
31
31
31
31
32
32
33
33
33
33
33
34
34
34
35
35
37
38
39
39
40
40
40
40
41
41
42
43
43
43
43
43
43
44
44
44
44
45
45
45
45
46
46
46
47
47
47
47
47
47
47
48
48
48
48
48
48
48
49
52
53
53
53
53
53
54
54
54
54
54
55
57
58
59
60
60
61
61
61
61
62
62
63
68
69
69
69
70
71
71
71
72
74
76
76
76
81
82
85
85
85
85
87
87
88
89
89
92
94
94
98
98
100
102
103
103
109
111
111
112
112
114
115
116
128
137
140
143
143
145
147
149
151
155
156
175
206
223
234
251
258
340
346
1
1
1
1
2
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
6
6
6
6
7
7
7
7
7
8
8
8
8
8
8
8
8
9
9
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
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
16
16
16
16
17
17
17
17
17
17
17
17
17
19
19
19
20
20
20
20
20
20
22
22
22
22
22
23
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
29
29
30
30
30
30
30
30
31
31
31
31
31
32
32
32
32
32
33
33
34
34
34
34
34
35
36
36
38
40
41
41
41
42
42
42
42
43
44
44
44
45
45
45
46
46
46
46
46
46
47
47
47
47
48
48
48
49
49
49
49
49
49
49
50
53
53
54
54
54
54
54
55
55
55
55
55
56
58
60
60
61
61
62
62
62
63
64
69
70
71
71
72
72
73
75
77
77
82
83
86
86
86
88
88
89
90
90
93
93
95
99
99
101
104
112
112
113
115
116
117
129
138
144
146
148
150
152
156
157
176
207
224
235
252
259
341
347
1
2
2
2
2
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
6
6
6
6
6
7
7
7
7
7
7
8
8
9
9
9
10
11
11
11
11
11
11
11
12
12
12
12
12
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
16
17
17
17
18
18
18
18
18
18
18
18
18
20
20
21
21
21
21
23
23
24
24
24
24
24
25
25
25
25
25
26
26
26
26
26
26
26
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
29
29
29
29
29
29
29
29
30
31
31
31
31
31
32
32
33
33
33
33
33
34
35
35
35
35
35
37
37
39
41
42
43
43
44
45
45
47
47
47
47
48
48
49
49
49
50
50
50
50
50
50
50
51
54
54
55
55
55
55
56
56
56
56
56
57
58
61
61
62
63
63
63
64
65
70
71
72
72
73
74
74
76
78
78
83
84
87
87
87
89
89
90
91
91
94
94
96
100
102
105
113
113
114
117
118
130
139
145
149
151
153
157
158
177
208
225
236
253
260
342
348
1
1
1
2
5
5
5
5
7
8
8
8
8
8
8
9
9
10
11
12
13
15
15
15
16
16
16
18
19
19
19
19
19
21
21
22
24
25
26
26
26
26
27
27
27
27
27
28
28
28
30
30
30
32
32
32
33
33
34
34
34
35
36
36
38
43
44
45
48
48
48
51
51
51
51
51
51
51
52
55
56
56
56
56
57
57
57
57
57
58
62
62
63
64
64
64
66
71
73
75
77
79
84
85
88
88
88
90
90
91
92
92
95
97
101
103
114
114
118
131
140
152
154
158
159
178
209
226
237
254
261
343
349
