42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
42
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
40
40
39
39
38
37
36
36
35
35
35
35
35
35
36
36
37
37
37
38
38
38
38
38
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
39
39
39
39
38
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
41
41
41
41
42
42
42
42
42
42
42
42
42
41
41
41
41
40
40
40
40
41
41
41
42
42
43
43
44
44
45
45
46
46
46
47
47
48
48
48
48
49
49
49
49
49
50
50
50
50
50
50
51
51
51
51
51
51
51
51
51
51
51
50
50
50
49
49
49
48
48
48
48
48
48
48
48
48
48
48
48
48
48
48
49
49
49
49
49
49
49
49
49
49
49
49
49
48
48
48
48
48
47
47
47
47
46
46
46
46
45
45
45
45
45
45
45
45
44
44
44
44
43
43
43
43
43
43
43
43
43
43
43
43
43
44
44
45
45
45
46
46
47
47
47
48
48
49
49
50
50
50
51
51
51
52
52
52
52
49
48
46
45
43
42
41
41
42
43
43
44
45
45
46
46
47
48
48
49
49
50
50
50
50
49
48
48
47
46
45
44
43
43
42
42
41
41
40
40
39
39
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
39
39
39
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
41
41
40
40
40
39
39
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
42
42
42
41
41
41
41
40
40
40
39
39
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
39
39
39
39
39
39
39
39
39
39
39
39
40
40
40
41
41
41
42
42
42
42
42
42
39
40
39
39
39
39
39
39
40
40
40
41
41
42
42
43
43
43
43
43
43
43
43
43
43
44
44
44
44
44
44
44
44
44
44
44
44
43
43
43
43
42
42
42
41
41
41
40
40
40
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
41
41
41
41
41
41
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
42
42
42
42
41
41
41
41
41
40
40
40
40
40
40
39
39
39
39
38
38
38
38
37
37
36
36
36
35
35
35
35
35
35
35
36
36
36
36
37
37
37
37
37
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
40
40
40
40
41
41
41
41
41
42
42
42
43
43
43
43
43
43
42
42
41
41
41
41
41
41
41
41
41
41
41
41
40
40
40
39
39
39
38
38
37
36
36
35
35
35
35
35
35
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
34
34
34
34
34
34
34
34
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
34
34
34
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
33
33
33
33
33
33
32
32
32
32
32
32
32
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
30
30
30
30
30
30
30
30
30
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
30
30
30
30
30
30
30
30
29
29
29
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
28
27
27
27
27
27
27
27
27
27
27
27
27
27
27
28
28
28
28
28
28
28
28
28
27
27
27
27
26
26
25
25
25
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
24
24
24
23
23
23
23
23
23
23
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
24
24
24
24
24
24
24
24
24
24
24
23
23
23
23
23
23
23
23
23
23
23
23
23
22
22
22
22
22
22
22
22
22
22
22
23
24
24
25
25
25
25
25
25
25
25
25
25
25
24
24
24
24
24
24
24
24
24
24
24
23
23
23
22
22
22
21
21
21
21
21
21
21
21
21
21
21
21
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
24
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
22
22
22
22
22
22
21
21
21
21
21
21
22
22
22
23
23
24
24
24
24
24
24
24
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
22
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
24
24
24
24
24
25
25
25
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
26
25
25
25
25
24
24
24
24
24
24
24
24
24
24
24
24
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
23
22
22
22
22
22
22
22
22
22
22
22
22
22
21
21
21
21
21
21
21
21
21
21
21
21
21
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
20
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
20
21
21
21
21
21
20
20
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
19
19
19
19
20
20
21
21
21
20
20
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
21
19
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
21
21
21
21
21
21
20
20
20
19
19
19
19
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
18
18
18
17
17
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
18
18
18
18
18
18
18
17
17
17
17
17
17
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
17
17
17
17
17
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
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
19
19
19
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
19
18
18
18
18
18
18
18
17
17
16
16
16
15
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
20
20
20
20
20
20
20
20
20
20
20
20
19
19
19
19
19
19
18
18
18
17
17
16
16
16
16
16
17
17
17
17
18
18
18
18
18
18
18
19
21
22
23
24
25
25
27
27
28
28
28
28
29
29
29
29
29
30
30
30
30
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
26
33
34
34
34
35
35
35
35
35
36
36
36
37
37
37
37
37
37
37
37
37
37
37
37
38
38
39
40
41
42
42
43
43
43
42
42
41
41
40
40
39
38
37
37
36
35
34
33
33
33
33
32
32
32
31
31
31
31
31
31
31
30
30
30
29
29
29
29
28
28
28
28
28
28
28
27
27
27
27
27
27
27
26
26
26
26
25
25
25
25
25
24
24
24
24
24
24
24
24
23
23
23
22
22
22
22
22
22
22
22
22
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
25
26
26
26
26
27
27
27
27
28
28
28
29
29
30
30
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
31
30
29
29
28
27
27
27
27
27
28
28
28
28
29
29
30
30
31
31
32
32
33
33
33
34
35
35
36
36
37
38
38
39
39
40
41
42
42
42
42
43
43
44
44
44
45
45
45
46
46
46
46
46
46
46
46
46
46
46
48
49
51
52
53
54
55
55
55
55
55
55
55
55
55
55
55
55
55
54
54
53
53
52
52
52
51
50
50
49
48
48
48
47
46
46
46
45
44
44
44
43
43
43
46
36
35
34
34
33
33
33
33
33
34
34
34
34
34
34
33
33
33
33
32
32
31
31
30
30
30
29
29
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
31
31
31
31
31
31
31
31
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
30
29
29
29
29
28
28
28
27
27
27
27
27
27
27
28
28
28
28
29
29
29
29
29
29
29
29
28
28
28
28
28
28
28
28
28
28
28
28
28
29
29
29
29
29
29
30
30
30
30
30
31
31
31
31
32
32
33
33
33
34
34
35
35
36
37
37
37
37
37
37
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
40
40
40
40
41
41
41
41
42
42
43
43
44
44
45
45
45
46
46
46
47
47
47
47
47
47
47
47
47
47
47
48
48
50
51
52
52
53
54
55
56
57
58
59
59
59
59
59
60
60
60
61
61
61
61
61
62
62
62
62
62
63
63
63
63
63
63
63
64
64
65
66
67
67
68
69
69
70
71
72
73
74
75
76
76
78
79
81
81
82
83
84
84
85
85
85
85
85
85
85
85
85
85
85
84
84
83
83
80
89
90
91
91
92
93
93
94
95
96
96
97
97
98
99
99
100
101
101
102
102
103
103
104
104
105
105
106
106
107
107
108
108
109
109
110
110
111
112
113
114
115
115
116
117
117
118
119
119
120
121
122
123
124
125
125
126
127
128
129
130
130
131
132
132
132
133
133
134
134
135
135
135
136
137
137
138
138
138
139
139
139
139
139
140
140
140
141
141
141
141
141
141
141
141
140
140
139
139
138
138
138
138
138
138
138
137
137
136
135
135
134
133
133
133
133
133
133
133
133
132
131
131
130
129
129
128
127
127
126
126
125
125
125
124
122
121
120
119
118
118
116
115
115
113
112
112
111
111
110
109
109
108
108
107
105
103
101
96
96
96
95
93
93
92
92
90
90
89
87
86
84
83
82
81
80
79
78
76
75
72
70
68
66
65
64
62
61
60
59
58
57
57
56
56
56
55
55
55
55
55
56
56
56
56
55
54
53
53
52
52
52
52
52
52
52
51
51
51
50
50
50
50
49
49
48
48
47
46
45
44
43
42
41
39
38
37
36
35
35
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
33
33
32
31
31
30
30
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
33
33
33
33
34
34
34
35
35
35
35
36
36
37
37
38
38
38
39
39
39
39
39
39
39
39
39
39
38
38
38
38
37
37
37
37
37
36
36
36
35
35
35
35
35
35
34
34
34
34
34
34
33
33
33
33
33
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
32
31
31
31
31
31
31
31
30
30
30
30
30
30
30
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
29
30
30
30
30
30
30
30
30
30
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
32
32
32
32
32
32
31
31
31
31
31
31
31
31
31
31
31
32
32
32
32
32
32
32
33
33
33
33
33
33
33
34
34
34
34
34
34
34
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
33
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
34
33
33
33
33
33
33
33
34
34
34
34
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
35
36
36
36
36
37
37
37
37
37
37
37
37
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
36
37
37
37
37
38
38
39
39
39
40
40
40
40
40
41
41
41
42
42
42
42
42
42
42
42
42
42
42
43
43
43
43
43
43
43
43
43
43
42
42
41
40
39
39
38
38
38
38
38
38
38
38
38
38
37
37
37
37
37
37
37
37
36
35
35
35
35
35
36
36
36
36
36
36
37
37
37
38
38
38
39
39
40
40
40
40
41
41
41
42
42
42
42
43
43
43
43
43
43
43
43
43
42
42
42
42
42
42
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
39
39
39
39
39
39
39
40
40
40
41
41
41
42
42
42
43
43
43
44
44
44
44
44
44
44
44
44
44
43
43
43
43
42
42
42
42
41
41
41
40
40
40
39
39
39
39
40
40
41
41
42
42
42
42
41
41
40
39
39
39
39
39
39
39
39
39
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
39
39
39
39
39
39
39
39
39
40
40
41
41
42
42
42
42
42
42
42
42
41
41
41
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
39
39
39
39
39
39
39
39
40
40
40
41
41
41
41
41
41
41
40
40
40
40
39
39
39
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
39
40
41
42
43
43
44
45
45
46
47
48
48
49
51
51
49
47
46
44
43
42
41
41
41
41
41
41
41
41
41
41
43
47
50
51
51
51
50
49
49
47
52
52
51
49
47
46
45
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
44
45
45
45
45
45
45
45
45
46
47
48
49
49
50
50
50
50
50
50
50
49
49
49
49
49
49
49
49
49
49
49
49
48
48
48
48
48
48
48
49
50
50
50
51
51
51
51
51
51
51
50
50
49
49
48
47
47
46
46
46
46
46
45
43
42
41
41
41
41
41
41
41
41
42
42
42
42
42
42
42
41
41
41
40
40
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
39
38
38
38
38
38
38
38
39
39
39
39
39
39
39
39
39
39
38
38
38
38
38
38
38
38
38
38
38
38
38
38
39
39
40
40
41
41
41
42
42
43
43
43
43
44
44
44
45
46
46
47
48
49
50
51
51
51
51
51
51
51
51
51
51
50
49
48
47
45
44
44
44
44
45
45
45
46
46
46
46
46
46
47
47
48
49
49
50
50
51
51
52
52
53
53
53
53
53
52
52
52
51
51
50
50
49
49
49
48
48
48
48
48
49
49
50
50
50
50
50
49
49
49
49
49
49
49
49
49
49
47
46
45
45
45
45
45
45
46
46
46
46
46
46
46
46
45
45
44
44
44
44
45
46
46
47
48
49
50
50
50
50
50
50
50
50
50
50
50
51
51
52
52
52
53
53
54
55
55
57
57
58
59
60
61
62
62
62
62
62
62
62
62
62
62
62
62
61
61
61
60
60
59
59
59
58
58
58
57
56
56
55
55
54
54
53
53
53
52
51
50
50
49
49
49
48
48
48
47
47
47
47
47
47
48
48
48
48
48
49
49
50
50
50
51
51
52
52
52
52
52
51
51
51
51
50
50
50
50
50
50
50
50
50
50
50
50
51
51
51
51
52
52
52
52
52
52
52
52
52
52
52
52
52
52
52
53
53
54
54
55
55
56
56
56
56
56
57
57
57
57
57
58
58
58
58
58
58
58
58
58
57
57
57
57
57
57
56
56
56
56
56
55
55
55
55
55
55
55
55
55
54
54
54
54
54
54
54
54
54
54
54
54
54
54
55
55
55
55
55
55
55
55
55
54
54
54
54
53
53
53
53
53
53
54
54
54
54
55
55
55
55
56
56
57
57
58
59
59
59
60
60
61
61
62
62
63
63
64
65
66
67
67
67
67
67
67
67
67
67
67
67
67
67
67
66
66
66
65
64
63
63
62
62
62
62
62
62
63
63
63
63
63
63
64
65
65
66
67
67
68
69
69
70
70
70
70
70
70
71
71
71
71
71
71
72
72
72
72
72
72
73
73
73
73
73
74
74
75
75
76
76
76
77
77
78
79
79
80
80
81
81
82
83
83
84
85
85
85
85
84
84
83
83
82
81
81
80
80
80
80
80
80
80
80
80
80
79
79
79
79
78
78
78
78
78
77
77
77
77
76
76
76
75
75
75
75
75
75
75
75
76
76
76
76
76
76
77
77
77
78
78
78
78
78
79
79
79
80
80
80
80
81
81
82
82
82
83
83
83
84
84
84
85
85
85
85
86
86
86
86
86
86
84
84
83
83
81
81
79
77
76
73
73
72
71
71
70
70
70
70
70
70
69
69
69
68
68
68
68
67
66
64
64
63
62
62
61
60
59
58
57
57
56
54
53
51
50
48
46
45
45
45
45
44
44
44
43
43
43
43
43
43
43
43
43
43
43
42
42
42
42
42
42
42
42
42
42
42
42
42