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