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