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