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