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
1
1
3
3
4
5
6
6
7
7
7
7
7
8
1
1
2
4
5
5
5
5
6
6
6
7
7
7
8
8
8
9
1
1
2
3
5
6
6
6
6
7
7
7
7
7
7
8
8
8
9
10
1
1
1
1
2
2
4
6
7
7
7
7
8
8
8
8
9
9
9
10
11
1
1
1
1
1
1
2
2
2
2
3
3
5
6
7
7
7
7
7
7
7
8
8
8
8
9
9
10
10
10
11
12
1
1
1
1
1
1
2
2
2
3
3
3
3
4
4
5
5
5
6
6
6
6
7
7
7
7
7
7
7
8
8
8
8
8
8
9
9
9
10
10
10
11
11
11
13
1
1
1
1
1
1
1
2
2
2
2
2
3
3
3
4
4
4
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
9
9
9
9
9
10
10
10
11
11
11
11
12
12
14
1
1
1
1
1
2
2
2
2
3
3
3
3
4
4
5
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
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
13
13
14
14
15
1
1
1
1
1
2
2
2
2
2
3
3
3
3
4
5
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
13
14
14
14
14
14
14
15
15
16
1
1
1
1
1
1
1
1
1
2
2
2
2
2
3
3
3
3
3
4
4
4
5
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
13
13
13
13
13
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
16
16
17
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
3
3
3
3
4
4
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
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
13
13
13
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
16
16
16
16
16
17
17
18
1
1
1
1
1
1
1
2
2
2
2
2
3
3
3
3
4
4
4
4
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
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
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
17
17
18
18
19
1
1
1
1
1
2
2
2
3
3
3
3
3
4
4
4
4
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
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
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
18
18
18
19
19
20
1
1
1
1
2
2
3
3
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
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
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
16
16
16
16
17
17
17
17
17
17
17
17
17
18
18
18
18
18
19
19
19
20
20
21
1
1
1
1
1
1
1
2
2
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
17
17
17
17
18
18
18
18
18
18
18
19
19
19
19
19
20
20
20
21
21
22
1
1
1
1
1
1
2
2
2
2
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
17
17
17
17
17
17
18
18
18
19
19
19
19
19
19
19
20
20
20
20
20
21
21
21
22
22
23
1
1
1
1
1
1
1
1
1
1
1
1
2
2
3
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
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
17
17
17
17
17
17
18
18
18
18
18
18
19
19
19
20
20
20
20
20
20
20
21
21
21
21
21
22
22
22
23
23
24
1
1
1
1
1
1
1
1
1
1
1
2
3
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
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
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
18
18
18
18
18
18
19
19
19
19
19
19
20
20
20
21
21
21
21
21
21
21
22
22
22
22
22
23
23
23
24
24
25
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
3
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
22
22
22
22
22
22
23
23
23
23
23
24
24
24
25
26
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
3
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
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
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
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
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
19
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
21
21
21
22
22
22
23
23
23
23
23
23
24
24
24
24
24
25
25
25
26
27
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
3
3
3
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
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
15
15
15
15
15
16
16
16
17
17
17
17
17
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
21
21
21
22
22
22
22
22
22
23
23
23
24
24
24
24
24
25
25
25
26
26
26
27
28
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
15
15
15
15
16
16
16
17
17
17
18
18
18
18
18
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
23
23
23
24
24
24
24
24
24
25
25
25
25
26
26
26
27
27
27
28
29
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
16
16
16
17
17
17
18
18
18
19
19
19
19
19
20
20
20
20
20
20
20
20
21
21
21
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
24
24
24
24
24
24
24
25
25
25
26
26
26
26
27
27
27
28
28
28
29
30
1
1
1
1
1
1
1
1
1
1
2
2
2
2
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
16
16
16
16
16
16
17
17
17
18
18
18
19
19
19
20
20
20
20
20
21
21
21
21
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
23
23
24
24
24
24
25
25
25
25
25
25
26
26
26
27
27
27
27
28
28
28
29
29
29
30
31
1
1
1
1
1
1
1
2
2
2
2
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
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
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
17
17
17
17
17
18
18
19
19
19
20
20
20
20
21
21
21
21
22
22
22
22
22
22
22
22
23
23
23
23
23
24
24
24
24
24
24
25
25
25
25
26
26
26
26
26
26
27
27
27
28
28
28
28
29
29
29
30
30
30
32
1
1
1
1
1
1
2
2
3
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
17
17
17
17
17
17
18
18
18
18
18
19
19
20
20
20
20
21
21
21
22
22
22
22
23
23
23
23
23
24
24
24
24
24
24
24
25
25
25
25
25
25
26
26
26
26
27
27
27
27
27
27
28
28
28
29
29
29
29
30
30
30
31
31
31
33
1
1
1
1
1
1
1
2
3
3
3
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
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
18
18
18
18
18
19
19
19
19
19
20
20
20
21
21
21
21
22
22
22
22
22
23
23
23
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
27
27
27
27
28
28
28
28
28
29
29
29
30
30
30
30
31
31
31
32
34
1
1
1
1
1
1
1
1
1
3
3
3
4
4
4
4
4
4
4
4
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
15
15
15
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
19
19
19
19
19
20
20
20
20
20
21
21
21
22
22
22
22
22
22
22
23
23
23
24
24
24
25
25
25
25
25
26
26
26
26
26
26
26
27
27
27
28
28
28
28
29
29
29
29
29
30
30
30
31
31
31
31
32
33
35
1
1
1
1
1
1
1
2
4
4
4
4
4
5
5
5
6
6
6
6
6
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
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
15
15
15
15
15
15
16
16
16
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
21
21
22
22
22
22
22
22
23
23
23
23
24
24
24
24
25
25
25
26
26
26
26
26
27
27
27
27
27
27
28
28
28
29
29
29
30
30
30
30
31
31
31
32
32
32
34
36
1
1
1
1
1
1
2
2
2
4
4
4
4
4
4
5
5
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
15
15
15
15
15
15
16
16
16
16
16
17
17
17
17
18
18
18
18
18
19
19
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
21
21
22
22
22
22
22
22
22
22
23
23
24
24
24
24
25
25
25
25
26
26
26
27
27
27
27
28
28
28
28
28
28
29
29
29
30
30
30
31
31
31
31
31
32
33
33
35
37
1
1
1
1
1
2
2
2
4
4
4
4
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
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
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
16
16
16
16
17
17
17
17
17
18
18
18
19
19
19
19
19
20
20
20
20
20
20
20
20
21
21
21
21
21
21
22
22
22
22
23
23
23
23
24
24
24
24
25
25
25
25
26
26
26
26
27
27
27
28
28
28
28
29
29
29
29
29
29
30
31
31
31
31
32
32
32
34
34
36
38
1
1
1
1
1
2
4
4
5
5
5
5
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
17
17
17
17
17
18
18
18
18
18
19
19
19
20
20
20
20
20
21
21
21
21
21
21
21
21
22
22
22
22
22
23
23
24
24
24
24
24
24
25
25
25
25
26
26
26
26
27
27
27
27
28
28
28
29
29
29
29
30
30
30
30
31
31
32
32
32
33
33
35
35
37
39
1
1
1
1
1
1
3
4
4
4
5
5
5
5
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
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
14
14
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
17
17
17
17
17
17
17
17
18
18
18
18
19
19
19
19
19
20
20
20
21
21
21
21
21
22
22
22
22
22
22
22
23
23
23
24
24
24
24
24
25
25
25
25
26
26
26
26
27
27
27
27
28
28
28
28
29
29
29
30
30
30
31
31
31
31
32
32
34
34
36
36
38
40
1
1
1
1
1
1
2
2
3
3
4
4
5
5
5
6
6
6
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
14
15
15
15
15
15
16
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
20
20
20
21
21
21
22
22
22
22
23
23
23
23
23
23
24
24
24
24
25
25
25
26
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
29
30
30
31
31
31
32
32
32
35
35
37
37
39
41
1
1
1
1
2
2
2
3
3
4
5
5
6
6
6
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
11
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
15
15
15
15
16
16
16
17
17
17
17
18
18
18
18
18
18
19
19
19
19
19
19
19
20
20
20
21
21
21
21
22
22
22
23
23
23
24
24
24
24
24
24
24
25
25
25
25
26
26
26
27
27
27
27
28
28
28
28
29
29
29
29
30
30
30
31
31
31
32
32
32
36
36
38
38
40
42
1
1
2
2
2
2
3
3
4
4
6
6
6
6
7
7
7
7
7
7
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
10
10
10
10
10
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
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
15
15
15
15
16
16
17
17
17
18
18
18
19
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
22
22
22
22
22
23
24
24
25
25
25
25
25
26
26
26
26
27
27
27
28
28
28
29
29
29
29
30
30
30
31
31
32
32
32
32
37
37
39
39
41
43
1
1
1
2
3
3
3
3
4
4
5
6
6
6
6
6
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
16
16
16
17
17
18
18
18
19
19
19
20
20
20
20
20
20
20
21
21
21
21
21
22
22
22
23
23
23
24
25
25
26
26
26
26
26
27
27
27
27
28
28
29
29
29
30
30
30
31
31
31
32
32
32
32
38
38
40
40
42
44
1
1
1
1
1
3
4
4
4
5
5
5
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
12
12
12
12
12
13
13
13
13
13
13
13
14
14
14
14
15
15
15
15
15
15
16
16
16
17
17
17
17
17
17
17
18
18
18
19
19
19
20
20
20
20
21
21
21
21
22
22
22
22
22
22
22
23
24
25
26
26
27
27
27
27
27
28
28
28
28
29
29
30
30
30
31
31
31
32
32
32
32
39
39
41
41
43
45
1
1
1
2
3
5
5
5
5
6
6
6
6
6
6
6
7
7
7
7
7
7
7
8
8
8
8
8
8
9
9
9
9
9
9
9
10
10
10
10
10
10
11
11
11
11
11
11
12
12
12
12
12
13
13
13
13
13
13
13
13
14
14
14
14
15
16
16
16
16
16
16
16
17
17
17
17
17
18
18
18
18
18
19
19
20
20
20
21
21
21
21
22
22
22
22
22
22
22
22
23
23
24
25
26
27
27
28
28
28
28
28
29
29
29
29
30
30
31
31
31
32
33
33
40
40
42
42
44
46
1
1
1
1
1
2
2
3
3
5
5
6
6
6
6
6
7
7
7
7
7
7
7
8
8
8
8
8
8
8
9
9
9
9
9
10
10
10
10
11
11
11
11
11
12
12
12
13
13
13
13
13
13
13
13
14
14
14
14
15
16
17
17
17
17
17
17
17
17
18
18
18
19
19
19
19
20
20
21
21
22
22
22
22
22
22
22
23
23
24
25
26
27
28
28
29
29
29
29
30
30
30
30
31
32
33
34
34
41
41
43
43
45
47
1
1
1
1
1
1
1
1
1
2
2
2
3
3
3
4
5
5
5
6
6
6
6
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
9
9
9
9
10
10
10
10
11
11
11
11
11
12
12
12
12
13
13
13
13
13
13
13
14
15
15
15
15
15
16
17
17
17
18
18
18
18
18
18
19
19
19
20
20
20
20
21
21
22
22
22
22
22
22
23
23
23
25
26
27
28
29
29
30
30
30
31
31
31
32
32
33
34
35
35
42
42
44
44
46
48
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
3
3
4
4
4
5
5
5
5
5
5
5
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
10
10
10
11
11
11
11
11
11
12
12
12
13
13
13
13
13
13
13
13
14
15
15
16
16
16
16
17
17
18
18
19
19
19
19
19
19
19
20
20
20
21
21
21
22
22
22
23
23
23
26
27
28
29
30
31
31
31
32
32
32
34
35
36
36
43
43
45
45
47
49
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
3
3
3
3
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
11
11
11
11
11
12
12
13
13
13
13
13
14
14
15
15
15
15
16
17
17
17
17
18
18
19
20
20
20
20
20
21
21
21
21
22
22
22
22
22
23
24
27
28
29
30
30
31
31
32
32
32
33
33
35
36
37
37
44
44
46
46
48
50
1
1
1
1
1
1
1
1
1
1
1
1
2
2
3
3
3
3
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
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
12
12
12
12
13
13
13
14
14
14
15
15
15
15
15
15
16
17
17
18
18
18
19
19
20
20
20
20
21
21
21
21
21
21
22
22
23
23
23
23
23
25
28
29
30
30
31
31
33
33
34
34
36
37
38
38
45
45
47
47
49
51
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
3
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
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
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
12
12
12
13
13
13
13
13
14
14
15
15
15
16
16
17
18
19
19
19
20
20
20
20
20
21
21
21
21
22
22
22
23
23
24
24
24
26
29
30
31
31
31
32
34
34
35
35
37
38
39
39
46
46
48
48
50
52
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
3
3
3
3
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
13
13
13
13
14
14
15
15
15
15
16
16
17
17
19
19
20
20
21
21
21
21
21
22
22
22
23
23
23
24
25
25
25
27
30
31
31
31
32
35
35
36
36
38
39
40
40
47
47
49
49
51
53
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
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
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
14
14
15
15
15
16
16
17
17
17
18
19
20
20
20
21
22
22
22
23
23
24
24
24
25
26
26
26
28
31
32
33
36
36
37
37
39
40
41
41
48
48
50
50
52
54
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
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
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
14
14
14
14
15
15
15
15
16
16
17
17
18
19
20
20
20
21
22
22
22
22
23
24
24
25
25
25
26
27
27
27
29
31
32
34
37
37
38
38
40
41
42
42
49
49
51
51
53
55
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
15
15
15
15
15
15
16
16
17
17
18
19
20
20
21
22
22
22
22
22
23
23
24
24
24
25
25
26
26
26
27
28
28
28
30
32
33
35
38
38
39
39
41
42
43
43
50
50
52
52
54
56
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
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
16
16
16
16
17
17
18
19
21
21
22
22
22
22
23
23
23
24
24
24
24
24
24
25
26
26
27
27
27
28
29
29
31
32
34
36
39
39
40
40
42
43
44
44
51
51
53
53
55
57
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
13
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
17
17
17
18
18
19
19
20
20
22
22
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
26
27
27
28
28
29
30
30
32
35
37
40
40
41
41
43
44
45
45
52
52
54
54
56
58
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
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
13
13
13
13
13
13
13
14
14
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
17
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
20
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
29
29
30
31
31
33
36
38
41
41
42
42
44
45
46
46
53
53
55
55
57
59
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
20
20
20
21
22
22
22
22
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
25
25
25
25
26
26
26
26
26
26
26
27
30
31
32
32
34
37
39
42
42
43
43
45
46
47
47
54
54
56
56
58
60
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
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
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
15
15
15
15
15
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
20
21
22
22
22
22
22
22
22
23
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
26
26
26
26
27
27
27
29
31
32
33
33
35
38
40
43
43
44
44
46
47
48
48
55
55
57
57
59
61
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
20
20
20
21
21
21
22
22
22
22
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
26
26
26
26
26
27
27
27
29
32
33
34
34
36
39
41
44
44
45
45
47
48
49
49
56
56
58
58
60
62
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
19
19
19
19
19
19
19
19
19
20
20
20
20
20
20
21
21
21
21
21
22
22
22
22
22
22
23
24
24
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
26
26
26
26
26
26
27
27
27
28
29
33
34
35
35
37
40
42
45
45
46
46
48
49
50
50
57
57
59
59
61
63
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
22
22
22
22
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
25
25
26
26
26
26
27
27
27
27
28
29
29
34
35
36
36
38
41
43
46
46
47
47
49
50
51
51
58
58
60
60
62
64
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
3
3
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
20
20
20
20
21
21
21
21
22
22
22
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
26
26
26
26
26
26
26
26
28
28
28
29
30
35
36
37
37
39
42
44
47
47
48
48
50
51
52
52
59
59
61
61
63
65
1
1
1
1
1
1
1
2
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
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
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
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
19
19
19
19
19
20
20
20
20
21
21
21
22
22
22
22
23
23
23
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
26
26
26
26
26
27
27
27
27
29
29
29
31
36
37
38
38
40
43
45
48
48
49
49
51
52
53
53
60
62
62
64
66
1
1
1
1
1
1
1
1
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
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
10
10
10
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
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
15
15
15
15
15
16
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
18
18
19
19
19
19
19
19
19
20
20
20
20
20
20
20
21
21
21
21
22
22
22
22
23
23
23
24
24
24
24
24
24
24
24
24
24
25
25
25
25
25
25
26
26
26
26
27
27
28
28
30
32
37
38
39
39
41
44
46
49
49
50
50
52
53
54
54
61
63
63
65
67
1
1
1
1
2
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
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
17
17
17
17
17
18
18
18
18
18
18
18
19
19
19
19
19
19
19
20
20
20
20
21
21
21
21
22
22
22
22
22
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
26
26
26
26
26
26
27
29
29
33
38
39
40
40
42
45
47
50
50
51
51
53
54
55
55
62
64
64
66
68
1
2
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
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
22
22
22
23
23
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
26
26
26
26
27
30
34
39
40
41
41
43
46
51
51
52
52
54
55
56
56
65
65
67
69
1
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
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
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
15
15
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
20
20
20
20
21
21
21
21
21
21
22
23
23
23
24
24
24
24
24
24
24
24
25
25
25
25
25
26
26
26
26
26
28
31
32
35
40
41
42
42
44
47
52
52
53
53
55
56
57
57
66
68
70
1
4
4
4
4
4
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
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
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
19
19
19
19
19
20
20
20
20
21
21
21
21
21
22
22
22
23
24
24
24
24
24
25
25
25
25
25
25
25
26
26
26
26
26
27
27
29
32
32
36
41
42
43
43
45
48
53
54
54
56
57
58
67
69
71
1
3
4
4
4
4
4
4
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
8
8
8
8
8
8
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
14
15
15
15
15
15
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
18
19
19
19
19
20
20
20
20
21
21
22
22
22
22
23
23
23
24
24
24
25
25
25
25
26
26
26
26
26
26
27
27
28
30
33
37
42
43
44
44
54
55
55
57
57
58
59
70
72
4
4
4
4
5
5
5
5
5
6
6
6
7
7
7
7
7
7
7
7
8
8
8
8
8
9
9
9
9
10
10
10
10
10
10
10
11
11
11
11
11
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
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
18
18
18
18
18
19
19
19
19
20
20
21
21
21
21
22
23
23
23
23
24
24
24
24
24
25
25
26
26
26
26
27
27
27
29
31
34
38
43
44
45
45
45
56
56
58
59
60
71
73
1
3
4
5
5
5
5
6
6
6
6
7
7
7
7
7
7
7
8
8
9
9
9
9
10
10
10
10
11
11
11
11
11
11
12
12
12
12
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
16
16
16
16
16
16
16
16
16
17
17
17
17
17
17
17
18
18
18
18
18
18
19
19
20
20
21
21
21
22
22
22
23
23
23
24
24
24
24
24
25
25
25
25
26
26
27
27
27
28
30
32
35
39
44
45
46
46
57
57
60
61
72
74
1
4
5
5
5
5
6
6
7
7
7
8
9
9
10
10
10
10
10
11
11
11
11
11
11
11
12
12
12
12
12
13
13
14
14
14
14
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
19
19
19
19
20
20
20
21
21
22
22
22
22
22
23
24
24
25
25
25
25
26
26
26
26
26
27
28
29
31
33
36
40
45
47
47
58
58
62
73
75
1
1
1
2
4
4
4
4
5
5
5
5
5
5
6
6
7
7
9
9
9
9
11
11
11
11
11
11
11
12
12
12
13
13
13
13
13
14
14
15
15
15
15
16
16
16
17
17
17
17
17
17
17
18
18
18
18
18
18
18
19
19
19
19
20
21
21
21
21
22
22
22
22
22
23
24
25
25
26
26
26
26
27
27
27
29
30
32
34
37
41
46
48
59
59
63
74
76
1
3
4
4
5
5
5
5
5
5
6
7
7
8
9
9
10
10
10
11
11
11
12
12
12
12
12
13
13
13
13
14
14
14
14
14
15
15
15
15
16
16
16
16
17
17
17
18
18
18
18
18
18
18
19
19
19
20
20
20
21
21
22
22
22
22
22
23
23
23
24
24
24
26
26
27
27
28
28
30
31
33
35
38
42
47
49
58
60
60
64
75
77
1
1
4
5
6
6
6
7
7
7
7
7
8
8
9
9
9
10
10
11
11
11
11
12
12
13
13
13
13
13
14
14
14
15
15
15
15
15
15
16
16
17
17
17
17
17
17
18
18
18
19
19
20
21
21
21
22
22
22
22
22
23
23
23
23
24
24
24
24
24
25
25
27
27
28
28
29
29
31
32
34
36
39
43
45
48
50
61
61
65
76
78
1
1
2
2
3
4
5
5
5
5
5
5
6
7
7
7
8
8
8
9
9
10
10
11
12
13
13
14
14
14
14
15
15
15
15
15
15
16
16
16
16
17
17
17
17
17
17
17
18
18
18
18
18
20
20
21
22
22
22
22
22
22
22
23
23
24
24
24
24
24
24
24
25
25
25
26
26
28
28
29
29
30
30
32
33
35
37
40
44
49
51
62
66
77
79
1
1
2
2
3
3
3
4
4
4
5
5
5
6
6
6
7
7
7
7
8
8
9
9
9
9
9
10
10
10
11
11
12
12
13
13
14
14
15
15
15
15
15
16
16
16
16
16
17
17
17
17
17
17
17
17
18
18
18
19
19
19
19
19
21
21
22
22
22
23
23
23
23
23
24
24
24
24
24
24
24
24
25
25
25
26
26
26
27
27
29
29
30
30
31
31
33
34
36
38
41
45
52
63
67
78
80
1
1
1
1
1
1
2
3
4
4
5
5
5
5
5
6
6
7
7
7
7
8
8
8
8
8
8
9
9
9
10
10
10
11
11
11
11
11
11
12
13
14
14
15
15
15
16
16
16
16
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
19
20
20
20
22
22
23
23
23
24
24
24
24
24
24
24
24
24
25
25
25
26
26
26
27
27
27
28
28
30
30
31
31
32
32
34
35
37
39
42
46
53
64
68
79
81
1
1
1
1
1
1
1
1
2
2
4
4
5
5
5
5
5
6
6
7
8
8
8
8
8
9
9
9
9
9
9
10
10
10
10
11
11
11
11
12
12
12
13
13
14
15
16
17
17
17
17
17
17
17
17
17
17
17
18
18
18
18
18
18
18
19
19
19
19
19
19
19
20
21
21
21
22
22
23
23
24
24
24
24
24
24
24
24
24
24
25
25
25
25
26
26
26
27
27
27
28
28
28
29
29
31
31
32
32
33
35
36
38
40
43
47
54
65
69
80
82
1
1
1
1
1
1
1
1
1
2
3
4
4
5
5
5
5
5
5
5
6
6
6
6
6
7
7
7
7
7
7
7
8
8
8
9
9
9
9
9
10
10
10
10
10
10
11
11
11
11
13
13
13
14
15
15
16
17
17
17
17
17
17
17
17
17
17
18
18
18
18
19
19
19
19
20
20
20
20
20
21
22
22
22
22
22
23
24
24
24
24
24
24
24
24
24
24
24
25
25
26
26
26
26
27
27
27
28
28
29
29
29
30
30
32
32
33
33
34
36
37
39
41
44
48
55
66
70
81
83
1
1
1
1
1
1
1
1
1
1
1
2
2
2
3
3
4
4
4
4
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
8
8
8
8
8
8
8
9
9
9
10
10
10
10
11
11
11
11
11
11
13
14
15
15
16
16
17
17
17
17
17
17
17
18
18
18
19
19
20
20
20
20
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
26
26
27
27
27
27
28
28
28
29
29
30
30
30
31
31
33
33
34
35
37
38
40
42
45
49
56
67
71
82
84
1
1
1
1
2
2
2
2
2
3
3
3
3
3
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
9
9
9
9
9
9
10
10
10
10
11
11
11
12
12
12
12
12
12
12
12
13
13
13
13
13
15
15
15
15
15
15
15
17
17
17
17
17
17
17
17
17
17
19
19
19
20
20
20
21
21
21
21
22
22
22
22
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
24
24
26
26
26
27
27
28
28
28
28
29
29
29
30
30
31
31
31
32
32
34
35
36
38
39
41
43
46
50
57
68
72
83
85
1
1
1
1
1
1
1
2
2
2
2
2
3
3
3
3
3
3
3
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
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
10
10
10
10
10
11
11
11
11
11
11
11
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
16
16
16
16
16
17
17
17
17
17
17
18
18
18
19
20
20
20
21
21
22
22
22
22
23
23
23
23
23
23
24
24
24
24
24
24
24
24
24
24
25
25
25
25
27
27
28
29
29
29
29
30
30
30
31
31
32
32
32
33
33
35
36
37
39
40
42
44
47
51
58
69
73
84
86
1
1
1
1
2
2
2
2
2
2
2
2
3
3
3
3
4
4
4
4
4
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
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
17
17
17
17
17
17
17
17
17
19
19
19
19
21
21
21
22
22
23
23
23
23
24
24
24
24
24
24
24
24
24
24
24
25
25
26
26
26
26
28
29
30
30
30
30
31
31
31
32
32
33
33
33
34
34
36
37
38
40
41
43
45
48
52
59
70
74
85
87
1
1
1
1
1
1
1
1
1
1
2
2
2
2
3
3
3
3
3
3
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
15
16
16
16
16
16
17
17
17
17
17
18
18
18
20
20
20
20
22
22
22
23
23
24
24
24
24
24
24
25
25
25
25
26
26
27
27
29
30
31
31
31
31
32
32
33
33
34
34
34
35
35
37
38
39
41
42
44
46
49
53
60
71
75
86
88
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
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
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
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
15
15
15
15
15
15
16
16
16
16
17
17
17
17
17
18
18
19
19
20
20
21
21
23
24
24
24
25
25
25
26
26
26
27
28
28
30
31
32
32
32
32
33
33
34
34
35
35
35
36
38
39
40
42
43
45
47
50
54
61
72
76
87
89
1
1
1
1
1
1
2
2
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
11
11
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
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
16
16
16
16
16
17
17
18
19
19
19
20
21
22
24
26
26
26
27
27
27
29
31
33
33
33
34
34
35
35
36
36
36
37
39
40
41
43
44
46
48
51
55
62
73
77
88
90
1
1
1
1
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
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
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
10
10
10
10
10
11
11
11
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
14
15
15
15
15
15
15
15
16
16
16
17
17
18
20
20
20
20
20
20
21
22
27
28
28
30
32
34
34
34
35
35
36
37
37
37
38
40
41
42
44
45
47
49
52
63
74
78
89
91
1
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
10
10
10
10
10
11
11
11
12
12
12
12
12
12
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
13
14
14
14
14
14
14
14
14
15
15
15
15
15
16
16
16
16
17
17
17
19
19
19
19
20
20
20
20
21
21
21
22
24
26
26
29
31
31
33
33
35
35
36
37
38
38
38
39
41
42
43
45
46
48
50
53
64
69
75
79
90
92
1
1
4
4
4
4
4
4
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
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
10
10
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
14
15
15
15
15
16
16
16
17
17
19
20
20
20
20
20
21
21
22
22
26
27
27
27
30
30
32
34
34
34
36
36
37
37
38
39
39
39
40
42
43
44
46
47
49
51
54
70
76
80
91
93
4
4
4
4
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
7
7
7
7
7
7
7
8
8
8
8
8
8
9
9
9
9
9
10
10
10
10
10
10
10
11
11
11
11
11
12
12
12
13
13
13
13
13
13
13
13
13
14
14
14
14
14
15
15
15
15
15
15
15
16
17
17
18
18
19
19
19
21
21
21
21
22
22
24
26
27
28
31
31
31
33
35
35
37
37
38
38
39
40
40
43
44
45
47
48
50
52
55
57
67
71
77
81
92
94
1
1
2
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
7
7
7
7
7
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
13
13
13
13
13
13
14
14
14
14
14
14
15
15
15
16
16
18
18
18
18
18
19
19
19
20
20
20
20
22
22
22
27
27
32
32
34
38
38
39
39
41
41
44
45
48
51
53
56
58
60
72
78
82
93
95
1
1
2
2
3
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
9
9
9
9
9
9
10
10
10
10
10
11
11
11
12
12
12
12
12
13
13
13
13
13
13
13
13
13
14
14
14
15
15
15
16
17
18
18
18
19
20
20
21
21
21
23
26
27
27
28
30
33
34
35
37
39
39
40
42
42
45
46
49
52
54
54
57
59
73
79
83
94
96
2
3
3
4
4
4
4
4
4
5
5
5
5
5
5
6
6
6
7
7
7
8
8
8
8
8
8
9
9
9
9
9
10
10
10
11
11
11
11
11
12
12
12
13
13
13
13
13
13
14
14
14
14
14
14
15
15
17
18
18
18
19
20
21
21
22
22
22
23
24
27
31
31
32
34
38
40
40
43
46
47
47
53
55
58
60
61
74
80
84
95
97
1
2
3
3
4
4
4
4
4
4
4
5
5
5
5
5
5
6
7
7
8
8
8
9
9
9
9
9
10
10
10
10
11
11
11
12
12
12
12
12
13
13
13
14
14
14
15
15
15
18
18
18
18
18
18
19
21
22
23
24
25
32
33
35
39
41
41
44
48
54
56
61
75
81
85
96
98
2
3
4
4
4
4
5
5
5
5
6
7
7
8
8
9
9
9
9
10
10
11
11
11
11
11
12
12
12
13
13
13
13
13
13
15
16
16
17
18
18
18
19
19
20
23
24
25
26
34
36
42
42
45
49
55
57
62
76
82
86
97
99
1
1
3
4
4
5
5
6
6
6
8
8
9
9
9
9
10
10
10
10
10
11
11
11
11
12
12
12
12
13
13
13
13
14
14
14
17
17
17
17
18
18
20
21
24
25
27
37
43
56
63
77
83
87
98
100
1
2
4
4
5
5
5
6
7
7
8
8
9
9
10
10
11
11
11
11
12
12
12
12
13
13
13
13
13
15
18
18
18
18
18
19
22
25
26
28
38
44
57
64
78
84
88
99
101
1
2
3
3
4
4
4
5
5
6
7
8
8
9
9
9
9
9
10
10
10
10
11
12
12
13
13
13
13
13
14
14
14
14
14
16
19
19
19
19
23
26
27
29
39
58
65
79
89
102
2
4
4
4
5
5
6
8
8
9
10
10
10
10
10
10
10
11
11
11
11
11
11
12
12
12
13
13
13
14
14
15
15
15
17
17
17
17
17
17
19
20
20
24
24
27
28
30
32
40
59
66
80
90
103
1
1
1
3
4
4
4
7
7
8
9
9
9
10
11
11
11
11
11
11
11
11
11
11
12
12
12
12
13
13
13
13
14
14
14
15
16
16
16
17
18
18
18
18
18
19
21
21
25
25
28
29
31
33
41
60
67
81
91
104
1
2
2
3
5
8
8
8
8
8
9
10
10
11
11
11
11
11
11
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
14
14
15
16
17
17
17
18
18
19
19
19
19
22
22
23
26
26
29
30
31
32
33
34
42
61
68
82
92
105
2
3
3
3
7
8
8
8
9
9
9
9
10
10
10
11
11
11
12
12
12
12
12
13
13
13
13
13
13
13
13
13
14
14
14
15
15
16
17
18
18
18
18
18
19
19
20
20
20
23
23
26
27
27
30
30
31
31
33
34
35
35
37
43
62
69
83
93
106
1
3
4
4
4
7
7
8
8
9
9
9
9
9
9
10
10
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
15
16
16
17
18
18
19
19
19
19
19
19
19
20
20
21
21
24
24
27
27
28
28
31
31
32
33
34
34
35
35
38
44
63
70
84
94
107
1
1
1
2
4
4
4
4
5
5
7
7
8
8
9
9
9
9
9
10
11
11
12
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
14
14
14
15
15
15
15
15
15
15
15
16
16
16
16
17
18
19
19
19
20
20
20
20
20
21
22
22
24
25
25
28
28
29
29
31
32
32
33
33
35
36
36
39
45
64
71
85
95
108
1
1
1
2
2
3
3
3
4
5
6
6
7
7
9
9
9
9
9
9
10
10
10
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
14
14
14
14
15
15
15
16
16
16
16
16
16
17
17
17
18
18
19
19
20
20
20
21
21
21
21
22
23
23
23
26
26
26
29
30
30
30
33
33
33
34
36
37
37
37
40
46
65
72
86
96
109
1
1
1
2
2
3
5
5
5
6
6
7
7
8
8
8
9
9
9
9
9
9
9
9
10
11
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
14
14
14
14
14
15
15
15
16
16
17
17
17
17
17
18
18
18
18
19
19
20
20
20
21
22
22
22
22
23
23
23
24
24
26
27
27
30
31
31
32
32
34
34
35
37
38
38
41
47
66
73
87
97
110
1
1
1
2
2
3
3
4
4
4
5
5
6
6
7
7
7
7
7
8
9
9
9
9
9
9
10
10
10
11
12
12
12
12
12
12
13
13
13
13
13
13
13
13
14
14
14
14
15
15
15
16
17
17
18
18
18
18
18
19
19
19
19
19
20
20
20
20
21
22
23
23
23
23
24
24
25
27
28
28
31
31
32
32
34
35
35
36
38
39
39
42
48
67
74
88
98
111
1
2
2
3
3
4
4
4
5
5
5
6
6
7
7
8
8
8
8
9
9
9
9
9
9
9
9
10
10
11
11
11
12
12
12
12
12
12
12
12
12
13
13
13
13
13
13
14
14
14
15
15
15
16
16
17
18
18
19
19
19
19
19
19
19
20
20
20
20
20
21
21
22
22
22
23
23
24
24
24
24
25
26
29
29
31
31
32
32
33
33
36
37
39
40
40
49
68
75
89
99
112
1
2
4
4
4
4
4
4
5
5
5
6
7
7
7
7
8
8
8
9
9
9
9
9
9
10
10
10
10
10
11
12
12
12
12
12
12
12
13
13
13
13
13
13
13
14
14
14
14
15
15
16
16
17
17
18
19
19
20
20
20
20
20
20
20
20
21
21
21
22
22
22
23
24
25
25
25
26
26
27
30
30
31
33
33
33
34
34
37
38
40
41
41
50
69
76
90
100
113
1
1
1
1
1
1
1
1
2
3
4
4
5
5
5
5
5
6
6
6
7
7
8
9
9
9
9
9
9
9
10
10
10
10
11
11
11
11
11
12
12
12
13
13
13
13
13
13
13
14
14
14
14
14
14
15
15
15
15
15
15
15
16
16
17
18
18
19
19
20
20
20
20
21
21
21
21
22
22
22
23
24
24
25
26
26
26
27
28
31
31
31
33
34
34
35
35
38
39
41
42
42
51
70
77
91
101
114
1
1
1
1
1
1
1
2
3
4
4
4
5
5
5
5
5
5
5
5
5
5
6
6
7
7
8
8
8
9
9
9
9
9
9
9
9
10
10
10
11
11
11
11
12
12
12
12
12
12
12
12
13
13
13
14
14
14
15
15
15
15
15
15
15
15
15
15
16
16
16
16
16
16
17
17
18
19
19
19
19
20
20
20
21
22
22
22
23
23
24
25
26
27
27
27
28
32
32
34
35
35
36
36
39
40
42
43
43
52
71
78
92
102
115
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
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
10
10
10
10
10
10
11
11
11
11
12
12
12
12
12
12
13
13
13
13
13
14
14
15
15
16
16
17
17
17
17
17
18
18
19
19
20
20
20
21
21
22
23
24
25
26
27
28
28
28
29
30
33
33
34
35
37
37
37
40
41
43
44
53
72
79
93
103
116
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
4
4
5
5
5
5
5
5
5
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9
10
10
10
10
10
10
10
10
11
11
11
11
11
11
12
12
12
12
12
12
12
13
13
13
13
14
14
14
14
14
15
15
15
17
18
18
18
18
18
19
19
19
19
20
20
20
21
21
22
22
23
26
29
30
31
31
32
34
34
38
38
38
41
42
44
45
54
73
80
94
104
117
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
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
8
8
8
8
8
8
8
9
9
9
9
9
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
10
11
11
11
11
11
11
11
11
12
13
13
13
13
14
14
14
15
15
16
18
19
19
19
19
19
20
20
20
21
21
22
24
27
30
31
32
33
35
35
39
39
42
43
45
55
74
81
95
105
118
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
6
6
6
6
6
6
6
7
7
7
7
7
7
7
7
7
7
7
7
8
8
8
9
9
9
9
10
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
12
12
12
12
13
14
14
14
14
14
15
17
19
20
20
20
20
20
21
21
21
22
25
31
34
36
36
40
43
44
46
56
75
82
96
106
119
1
1
1
1
1
1
1
3
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5
7
8
8
8
8
8
8
8
8
8
8
11
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
12
13
13
13
13
14
15
15
20
21
21
21
21
21
22
22
32
37
37
41
44
45
47
57
76
83
97
107
120
