2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
2
1
1
2
5
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
9
1
1
1
1
1
1
1
1
2
1
1
1
0
1
1
1
1
5
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
0
1
1
1
1
10
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
4
1
1
2
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
4
0
1
1
4
4
1
0
1
1
1
1
1
1
2
2
1
1
2
1
1
1
1
1
1
1
1
1
5
0
0
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
3
3
3
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
1
1
3
1
1
1
1
1
1
3
1
1
1
1
1
0
2
2
1
2
1
1
1
1
1
1
1
0
1
1
5
4
4
4
1
1
1
1
1
1
1
1
2
2
1
5
1
1
1
1
1
1
1
0
1
1
4
1
4
1
4
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
2
1
1
1
0
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
2
0
0
4
1
1
1
1
1
0
1
1
2
1
1
2
1
1
1
4
1
1
4
1
1
1
1
16
1
1
1
1
1
1
1
1
1
1
1
1
4
10
9
9
1
1
0
0
10
1
1
1
1
1
1
16
4
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
4
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
4
4
2
1
1
2
5
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
0
6
6
1
2
0
1
1
1
1
1
1
1
3
3
3
1
1
1
1
1
1
1
2
1
1
1
1
1
4
1
0
4
1
1
1
1
1
1
1
3
3
3
3
3
3
1
1
1
1
2
1
1
1
1
1
1
1
1
1
5
0
0
0
1
2
2
1
1
2
2
1
1
1
1
2
2
2
2
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
2
2
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
0
1
1
1
1
10
4
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
5
1
1
1
1
2
2
1
1
1
1
1
2
1
1
1
1
1
1
4
1
3
3
3
0
1
1
1
5
1
1
1
4
1
1
1
0
1
1
1
4
1
1
1
0
0
4
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
10
4
4
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
2
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
9
4
4
4
0
1
1
1
2
2
1
1
2
2
2
2
2
2
2
2
1
1
1
1
4
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
2
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
3
3
1
1
1
1
1
1
1
1
1
5
2
0
0
1
1
1
2
2
1
1
3
3
3
1
1
1
1
1
1
1
1
1
1
1
5
2
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
4
2
1
1
2
1
1
1
2
1
2
1
1
1
1
1
1
0
1
0
1
1
1
2
1
1
1
1
1
1
0
2
1
1
1
1
1
1
0
1
1
1
1
1
2
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
2
1
1
1
1
0
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
2
2
2
2
2
2
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
2
1
1
1
1
5
19
0
1
2
1
1
1
1
5
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
6
1
1
1
1
1
1
1
1
1
16
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
5
1
1
1
1
0
0
4
4
4
4
5
1
1
1
4
1
1
1
0
1
1
1
4
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
4
1
4
1
1
0
0
1
1
1
2
16
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
2
4
1
1
1
2
2
1
1
1
1
1
0
1
1
1
1
1
1
4
1
4
4
4
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
4
4
16
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
2
1
1
0
1
1
0
0
1
1
1
4
1
1
1
1
1
1
1
1
1
2
1
1
5
0
0
1
0
1
1
1
1
1
1
2
2
5
1
1
1
1
1
1
1
1
4
4
1
4
1
1
1
1
1
1
1
1
1
2
0
0
0
0
1
1
1
1
1
1
1
1
2
0
0
1
1
1
1
1
1
1
2
1
0
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
6
6
0
0
1
1
1
1
1
1
2
0
0
2
0
0
1
1
2
2
1
1
1
1
1
1
1
1
1
4
1
1
0
4
1
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
13
13
0
0
5
5
0
0
1
1
1
1
10
1
1
1
1
1
1
1
5
1
1
0
0
8
1
2
1
1
1
1
1
1
1
1
1
1
1
1
5
1
1
1
1
1
1
0
1
0
1
1
1
0
0
9
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
0
1
2
1
1
1
1
5
19
0
1
2
1
1
1
1
5
1
1
1
1
1
1
1
0
1
1
1
0
2
1
1
1
1
2
2
2
1
1
1
1
1
1
1
3
1
3
3
3
1
3
3
3
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
16
0
16
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
2
1
0
1
1
1
1
1
1
5
1
4
4
4
0
1
1
1
1
1
1
1
1
1
1
1
1
1
4
4
4
0
4
4
4
0
2
0
1
1
1
1
1
1
4
1
1
2
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
5
5
2
5
1
1
1
1
1
5
2
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
6
8
8
8
8
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
2
1
1
0
5
0
0
0
5
0
0
0
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
2
1
1
0
5
0
0
0
5
0
0
0
1
1
1
1
0
0
0
10
1
1
1
1
1
1
1
1
5
1
1
1
2
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
4
2
1
1
2
1
1
1
1
0
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
2
1
1
1
5
1
2
5
1
2
1
2
1
1
2
1
1
2
2
1
1
1
1
1
0
1
1
1
1
0
1
1
1
2
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
5
2
1
2
1
1
2
1
1
1
1
4
1
1
1
1
1
1
0
2
1
1
1
1
0
0
2
1
1
0
1
1
0
0
1
1
1
4
1
1
1
1
1
1
1
1
1
2
1
1
5
0
0
1
0
1
1
1
1
1
1
4
1
1
4
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
3
1
0
0
0
0
1
1
0
3
1
1
1
1
1
1
0
1
1
1
0
5
5
1
2
1
1
1
2
1
0
1
1
1
1
1
1
0
2
0
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
2
2
1
0
0
2
1
1
1
1
1
1
1
9
1
1
1
1
1
1
1
2
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
5
1
2
1
1
1
1
1
1
1
1
1
1
1
5
1
1
5
1
2
1
1
2
1
1
2
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
3
3
3
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
3
1
0
0
0
0
1
0
1
1
1
1
1
1
16
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
2
2
0
0
2
2
0
0
1
1
1
1
1
1
1
1
4
4
1
1
1
1
1
1
0
1
5
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
3
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
3
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
0
0
17
2
1
2
1
1
1
1
5
1
1
1
1
1
1
4
1
0
1
1
1
1
1
1
1
4
4
1
2
0
0
0
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
0
0
10
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
13
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
4
10
4
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
16
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
0
1
2
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
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
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
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
0
1
1
0
0
5
1
1
5
2
1
1
1
3
1
3
3
3
1
1
1
1
1
1
2
1
1
0
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
0
1
6
1
1
6
1
2
1
1
2
1
1
1
1
1
1
1
1
4
1
1
2
2
1
1
1
1
1
1
1
1
1
4
1
1
0
4
1
1
2
2
2
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
4
4
1
1
2
2
1
1
1
1
1
1
1
1
1
4
1
1
0
4
1
5
0
0
0
0
1
0
1
0
1
1
1
1
1
10
4
1
0
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
0
0
1
1
1
1
1
1
1
1
13
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
4
1
2
1
4
1
1
1
0
1
2
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
0
5
0
1
3
3
3
2
0
5
0
1
3
3
3
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
4
1
4
1
0
1
1
1
1
1
1
2
2
2
1
1
2
1
1
1
2
2
1
1
1
1
1
1
1
3
3
1
0
0
1
2
1
1
1
1
1
1
8
8
1
0
1
1
1
1
1
9
1
1
1
1
1
1
1
1
0
0
1
1
1
9
1
0
1
1
0
9
9
1
1
2
2
2
2
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
2
1
1
0
1
1
0
1
1
2
1
0
1
1
1
0
3
3
1
3
3
3
3
4
1
3
3
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
0
3
3
3
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
2
0
5
5
1
1
1
1
1
2
0
5
2
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
4
0
1
1
1
1
1
1
2
1
1
1
2
0
0
2
1
1
1
1
1
2
4
1
1
1
1
1
1
4
2
0
0
2
0
0
1
3
3
3
1
3
3
3
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
2
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
1
2
1
1
1
1
5
5
1
5
2
1
1
1
1
0
1
0
1
1
6
1
1
1
1
1
0
1
1
1
0
2
2
1
2
1
1
2
1
5
5
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
2
2
0
0
1
1
1
1
1
2
1
1
2
1
1
0
0
1
1
0
0
2
1
2
1
1
1
5
2
0
1
1
1
6
6
1
1
1
1
1
6
1
1
1
1
1
1
2
1
1
1
1
1
1
4
9
3
3
1
2
0
0
1
1
1
1
1
1
1
1
1
1
0
6
6
1
2
0
1
1
1
1
1
1
1
3
3
3
1
1
1
2
1
1
1
1
1
0
4
4
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
10
4
4
1
1
2
0
0
1
1
1
1
2
1
1
0
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
2
1
1
2
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
5
1
0
2
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
1
1
1
1
1
2
1
1
1
1
2
1
1
0
0
1
4
1
1
1
1
2
1
2
1
1
1
2
1
2
1
1
1
0
1
4
1
3
0
0
1
1
1
1
1
1
1
1
1
5
1
2
5
1
2
0
1
1
1
1
2
1
1
2
1
1
1
5
1
1
1
1
0
1
1
1
0
1
1
4
1
1
1
1
1
2
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
2
2
1
2
1
1
0
1
1
0
0
1
0
13
0
0
0
0
13
0
0
0
13
0
0
0
1
1
1
1
4
1
1
1
1
1
1
4
1
1
1
0
1
1
2
1
2
1
1
1
1
5
1
0
1
1
2
1
1
1
1
0
1
1
1
0
1
8
5
1
2
1
1
1
1
1
1
1
1
5
5
1
5
2
1
1
1
1
1
1
1
1
19
6
1
6
6
1
0
1
1
0
1
1
1
1
1
1
1
4
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
3
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
3
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
2
2
2
1
1
2
1
2
1
2
2
2
2
2
1
1
1
2
1
1
1
1
1
2
1
2
1
1
2
1
1
2
1
1
1
1
1
1
1
1
0
1
5
5
5
1
1
1
5
1
1
5
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
2
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
0
2
1
1
1
1
1
1
5
1
1
1
1
1
1
1
3
3
3
1
2
1
5
1
0
1
1
1
1
1
1
1
1
4
4
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
3
0
0
1
1
0
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
2
0
3
3
3
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
2
1
2
1
1
2
1
1
1
2
1
1
4
1
4
5
1
1
1
0
2
1
3
3
3
3
3
3
2
1
1
1
1
1
2
1
1
1
2
2
1
0
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
3
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
2
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
2
2
2
1
1
1
1
1
5
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
5
1
1
1
1
1
1
1
2
1
2
1
0
2
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
3
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
3
0
1
1
1
0
8
8
0
1
0
1
1
4
1
4
1
4
1
4
1
1
1
1
1
9
1
0
1
9
1
0
1
1
1
1
9
1
0
1
9
8
0
5
0
0
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
5
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
5
1
5
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
2
1
1
1
1
0
1
1
1
1
8
5
1
2
1
1
1
1
1
1
1
1
5
5
1
5
2
1
1
1
1
1
1
1
1
19
1
1
1
0
2
1
1
1
6
1
1
1
1
1
1
1
2
0
1
1
1
0
2
0
2
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
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
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
5
2
1
1
1
1
0
0
1
2
0
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
2
1
0
1
1
1
1
1
1
1
1
2
1
1
1
1
16
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
0
1
4
1
1
4
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
3
1
2
1
1
4
1
2
1
1
1
1
1
1
1
1
2
1
1
1
4
0
4
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
4
4
4
4
1
1
1
4
4
1
1
4
4
1
1
1
1
1
4
4
0
1
1
1
1
9
1
1
9
1
0
2
1
1
1
1
0
1
1
1
1
4
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
2
1
1
2
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
5
5
5
1
1
2
1
1
1
2
1
1
1
1
1
1
1
1
1
3
3
0
1
0
0
3
2
1
1
1
1
1
2
5
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
3
3
1
1
1
1
2
0
2
1
1
1
5
1
1
1
1
1
1
1
2
1
1
0
1
1
1
1
1
1
2
0
0
1
2
2
0
2
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
2
1
2
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
3
3
1
3
3
3
3
1
2
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
5
2
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
4
5
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
8
1
0
1
1
1
1
1
2
2
2
1
1
1
1
1
1
1
4
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
1
1
1
2
2
1
1
2
1
5
1
1
1
1
2
1
2
1
1
1
1
1
1
1
1
1
1
4
0
1
2
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
0
1
1
1
1
1
2
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
5
0
1
3
3
3
2
0
5
0
1
3
3
3
1
1
1
1
2
1
5
1
1
1
1
1
0
0
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
3
1
1
2
1
1
1
1
0
0
1
1
1
1
1
1
1
2
2
1
2
1
2
1
2
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
2
1
5
1
1
1
1
1
1
1
0
1
1
1
1
1
1
2
1
1
1
1
1
1
5
5
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
0
1
1
1
1
0
1
1
9
1
1
4
1
1
1
0
2
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
2
1
1
1
1
0
1
0
1
1
1
1
2
1
1
1
1
1
1
4
1
2
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
0
5
1
1
1
1
1
0
2
0
1
1
1
1
2
2
2
2
8
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
2
1
1
1
1
1
0
1
4
1
2
1
1
1
1
1
1
1
2
1
1
0
0
1
1
1
1
1
1
4
1
1
1
1
1
1
1
4
4
4
4
4
4
1
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
5
0
1
1
1
1
1
1
1
5
1
1
1
1
1
0
1
1
1
1
1
1
1
3
1
1
1
1
1
1
1
1
1
2
1
2
1
0
0
1
0
1
3
3
2
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
2
1
1
2
1
1
2
1
1
5
1
1
1
1
1
0
1
0
4
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
9
9
9
2
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
5
1
0
0
0
1
1
1
1
1
0
0
2
1
1
0
1
1
1
1
1
1
0
2
1
1
1
1
1
1
2
1
1
1
1
1
2
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
6
1
1
1
1
1
1
1
1
1
1
1
0
2
0
2
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
4
0
1
1
1
1
1
4
1
1
1
1
1
0
0
1
1
1
1
1
1
1
2
0
0
1
1
1
0
0
1
1
1
1
2
2
1
2
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
4
4
1
1
1
1
1
1
1
1
2
1
1
2
1
1
2
1
1
1
0
1
1
1
1
1
1
1
3
1
1
1
0
1
1
1
2
1
1
1
2
1
0
1
1
1
4
1
2
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
5
1
1
1
1
1
0
3
3
3
3
3
1
1
1
0
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
0
1
1
0
1
1
1
1
0
2
1
1
1
1
1
1
4
4
0
1
1
1
2
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
2
1
1
1
1
1
1
1
1
2
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
2
1
1
1
2
0
1
1
1
1
1
1
1
3
1
1
1
1
1
1
1
1
2
1
1
0
0
0
0
2
0
2
1
1
1
1
6
1
1
1
1
1
0
1
1
2
1
1
0
1
0
1
0
1
1
5
1
1
1
5
1
1
1
2
1
1
1
1
0
1
1
1
0
0
0
1
0
22
1
1
1
1
1
1
1
1
2
1
1
1
1
1
0
4
1
1
0
0
8
1
1
1
1
1
1
1
1
1
1
1
1
6
6
6
6
6
6
1
1
1
1
1
2
0
1
0
1
0
2
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
2
1
1
2
1
1
1
1
4
4
2
1
1
1
2
1
1
1
0
2
0
4
1
2
1
1
2
1
2
1
2
1
1
1
1
1
1
0
2
1
1
1
0
0
1
1
1
1
1
4
4
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
2
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
4
0
1
4
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
0
0
1
0
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
6
1
1
1
1
1
1
2
2
1
1
1
1
2
0
0
2
0
0
1
3
3
3
1
2
1
1
1
2
1
1
0
0
1
0
3
3
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
6
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
5
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
8
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
13
0
0
0
0
1
1
4
1
1
1
1
1
1
4
4
1
1
1
1
1
2
1
1
1
1
1
1
2
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
2
1
2
1
1
1
0
0
0
0
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
1
1
1
2
0
0
0
23
4
4
1
1
4
1
1
1
1
0
1
1
2
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
4
4
4
4
4
4
9
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
2
1
1
2
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
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
3
3
3
3
3
3
13
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
13
1
1
1
1
1
1
1
1
1
1
1
1
0
5
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
4
1
1
1
1
1
0
8
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
8
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
2
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
4
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
4
1
1
1
1
1
1
1
1
1
1
3
3
3
2
1
1
0
1
0
1
1
1
1
1
1
1
1
2
1
2
1
1
2
2
2
1
1
1
1
1
1
4
0
1
1
4
4
1
4
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
1
2
4
4
8
8
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
0
0
0
1
0
1
1
1
0
13
0
0
0
10
1
1
1
1
1
1
1
5
1
1
0
0
8
1
1
1
1
1
1
2
2
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
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
0
0
0
1
1
0
3
1
1
0
1
0
1
1
0
1
1
2
1
2
1
1
2
1
1
2
5
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
2
1
0
1
3
3
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
2
1
1
2
2
2
1
1
1
1
1
2
1
1
1
1
1
1
1
3
4
4
4
1
1
1
1
1
1
1
0
1
2
0
4
1
1
1
1
1
1
3
3
3
0
1
1
1
1
2
1
1
1
2
1
2
1
1
2
2
1
5
2
1
1
1
1
1
1
1
1
2
1
2
2
1
0
0
1
1
1
0
1
2
26
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
1
0
1
1
1
8
8
8
8
0
5
0
0
1
1
1
1
2
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
2
1
1
0
5
0
0
0
5
0
0
0
1
1
1
1
0
5
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
5
0
0
0
8
1
10
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
4
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
2
1
1
1
1
1
0
2
1
1
1
1
1
1
5
1
1
1
1
4
1
1
1
1
1
1
1
1
2
1
1
1
1
2
1
1
0
2
1
1
1
2
1
1
4
0
1
1
1
1
1
1
1
1
1
1
1
1
1
4
4
4
0
4
4
4
1
1
1
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
0
1
1
4
9
0
1
9
1
1
4
1
1
1
2
2
2
2
1
1
1
1
1
1
2
0
1
0
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
5
1
1
1
4
1
1
2
1
1
1
2
1
1
1
1
1
1
5
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
2
1
1
1
1
1
1
2
0
1
5
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
1
1
1
1
1
1
1
3
1
3
3
3
0
1
1
3
3
1
1
1
1
0
1
1
1
1
1
1
1
1
0
9
9
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
2
1
1
1
1
2
2
1
2
1
0
2
1
1
0
1
2
1
1
2
2
1
1
1
2
1
1
1
2
2
0
1
2
0
1
1
1
1
0
1
1
2
0
1
1
2
0
1
0
1
1
1
1
2
5
1
1
1
5
2
1
1
1
2
0
1
1
1
1
2
1
2
2
5
0
0
0
0
5
0
0
0
0
1
2
0
1
1
1
1
1
2
0
2
1
0
1
0
2
1
1
1
1
1
1
0
1
2
2
0
5
0
0
0
1
1
1
1
1
1
2
1
1
0
1
1
1
1
1
1
2
0
0
1
1
1
1
1
0
2
0
1
1
1
1
1
0
5
2
1
1
2
0
0
1
1
1
2
1
1
1
1
1
2
1
0
0
1
1
1
1
4
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
0
1
0
2
1
0
1
1
1
1
1
1
1
1
1
1
1
5
1
1
1
1
1
5
1
1
1
0
2
1
0
2
1
1
1
0
1
0
2
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
4
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
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
3
0
1
0
1
1
1
1
1
0
1
0
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
6
5
5
5
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
2
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
8
8
8
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
8
1
2
1
2
0
2
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
4
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
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
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
4
1
1
4
1
1
1
2
1
1
1
1
4
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
4
4
4
1
1
0
1
0
1
0
1
1
4
1
1
1
1
1
1
1
1
2
1
1
1
1
1
0
0
1
4
2
1
1
2
1
1
2
1
1
1
1
1
1
1
1
1
2
5
1
1
1
1
1
1
1
1
1
1
0
0
4
0
1
1
1
1
0
4
1
4
4
0
13
0
0
0
0
1
1
4
1
1
1
1
1
1
4
4
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
5
0
0
0
0
5
1
0
1
1
1
0
1
1
1
1
1
4
4
4
4
4
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
4
1
1
6
5
1
1
1
1
1
1
1
1
1
4
2
1
1
2
1
1
2
2
0
1
1
1
1
2
1
1
1
1
1
0
1
1
1
1
2
1
1
1
1
2
1
2
1
1
1
0
0
9
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
9
9
1
9
9
1
0
0
0
1
0
1
1
1
1
1
2
1
1
1
0
5
1
0
0
1
5
2
0
0
1
1
1
2
2
1
1
3
3
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
2
1
2
1
1
1
5
1
1
1
1
0
1
1
1
0
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
2
0
1
1
2
1
1
1
1
1
6
1
1
6
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
2
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
4
1
1
1
1
1
1
4
1
1
1
0
1
1
1
1
1
1
2
1
1
1
2
1
1
2
1
1
0
1
1
1
1
5
1
1
1
4
1
0
2
0
0
4
1
1
1
1
1
0
2
1
1
2
1
1
2
1
1
1
1
1
4
1
1
4
1
1
4
1
2
0
1
1
1
1
1
2
0
1
1
0
1
6
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
2
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
1
1
1
1
0
0
2
1
2
1
1
1
1
2
1
0
1
1
1
1
2
1
1
2
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
4
4
1
2
2
1
2
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
5
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
2
1
13
1
5
1
5
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
2
1
2
1
2
2
2
1
1
1
1
1
4
4
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
4
4
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
3
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
1
5
1
1
1
5
0
1
1
1
1
1
0
1
0
1
1
1
1
2
1
1
1
0
1
1
1
1
1
1
1
5
1
5
2
0
0
2
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
3
1
3
1
1
1
1
1
0
1
0
1
1
1
1
2
1
1
1
1
1
1
1
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
13
0
0
0
0
1
1
2
1
1
2
1
1
2
0
1
1
1
1
1
1
1
1
1
13
0
0
0
0
1
1
1
1
1
1
2
1
1
1
1
1
1
3
3
3
1
0
2
0
1
1
1
0
0
9
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
4
1
1
1
1
1
1
4
1
1
1
0
5
2
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
4
0
0
0
1
1
2
1
2
1
1
1
1
1
1
2
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
2
1
1
0
1
0
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
2
1
1
1
1
0
0
1
1
0
1
1
1
2
0
0
1
1
2
1
0
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
2
2
1
1
2
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
0
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
2
1
1
0
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
2
2
6
6
0
0
1
1
1
4
4
4
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
2
1
2
1
1
4
1
2
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
4
2
1
1
1
1
1
1
2
1
1
1
1
1
1
4
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
2
1
1
1
4
1
2
1
1
1
1
1
1
1
2
0
0
1
1
1
1
1
1
4
1
0
1
0
1
1
1
4
1
0
1
1
1
1
1
1
2
1
0
2
1
1
1
1
1
1
4
4
0
1
1
1
3
3
3
3
3
3
3
3
1
1
4
1
1
1
2
1
2
1
1
0
1
1
1
1
1
4
1
1
4
1
1
1
4
0
1
1
4
1
4
1
1
0
1
1
1
1
1
1
1
1
5
1
1
2
0
0
1
1
2
1
1
1
2
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
5
1
1
1
1
1
1
1
5
0
0
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
2
1
2
1
1
2
1
0
2
5
0
0
1
1
1
1
2
1
1
1
1
2
2
1
2
2
1
1
2
1
1
0
1
0
1
0
1
0
0
1
1
5
2
0
0
1
1
1
2
2
1
1
3
3
3
1
1
1
1
1
1
1
1
1
1
1
2
1
5
5
1
1
1
1
0
0
0
8
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
0
1
1
1
1
1
0
1
2
0
1
2
2
2
0
0
0
0
1
1
0
1
1
1
2
0
0
1
0
1
1
1
1
1
1
0
1
1
1
2
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
2
1
1
1
1
5
2
1
1
1
0
0
0
1
1
1
1
1
1
0
1
2
1
0
1
1
1
1
1
1
3
1
1
1
1
1
1
2
1
1
0
1
1
1
1
1
1
4
1
1
1
2
1
1
1
1
1
1
5
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
2
1
2
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
2
2
1
1
0
1
1
5
0
0
0
0
1
1
5
0
0
0
5
2
1
1
0
0
2
2
1
1
1
2
1
1
1
1
1
25
2
1
1
1
1
1
1
1
2
5
0
0
1
1
1
1
1
1
2
1
1
1
1
2
2
1
1
1
1
1
1
5
0
0
2
1
1
4
8
8
8
8
13
0
0
0
0
13
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
2
0
1
1
1
1
1
1
2
0
0
1
1
2
2
1
1
1
1
5
1
1
1
1
4
1
1
1
1
4
4
1
1
1
1
2
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
2
2
6
7
1
1
1
0
7
1
0
1
1
1
0
1
1
7
1
1
1
1
1
1
1
1
1
0
1
2
7
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
3
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
4
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
2
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
0
1
0
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
0
0
1
1
1
1
1
1
0
1
3
3
1
1
1
2
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
2
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
2
0
1
1
4
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
5
1
1
0
0
1
1
1
0
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
1
1
1
4
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
5
1
2
0
1
1
1
0
1
1
1
0
1
1
1
1
2
1
1
1
1
1
4
1
1
1
1
0
1
1
1
1
0
1
1
1
2
1
1
0
1
1
1
1
4
1
2
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
2
0
1
1
1
1
1
1
1
1
4
2
1
5
1
1
1
1
1
1
1
2
2
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
4
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
5
0
0
4
1
1
1
1
1
1
1
1
1
0
1
2
1
0
1
1
1
1
1
1
4
1
1
0
0
1
1
1
2
2
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
4
1
3
3
3
2
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
2
1
1
3
1
1
1
1
4
4
3
1
0
0
1
1
4
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
2
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
0
1
1
1
0
0
0
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
3
1
1
2
1
1
0
2
1
1
2
1
1
1
1
1
1
1
1
4
1
1
1
1
2
1
2
2
1
1
1
1
1
1
1
9
2
1
2
2
1
1
1
1
1
1
1
9
0
5
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
2
1
0
2
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
2
1
1
1
2
1
1
0
0
1
0
3
3
3
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
2
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
0
0
1
2
2
2
1
1
1
1
2
1
1
5
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
2
0
1
0
1
1
1
0
1
0
1
1
1
2
1
1
1
1
1
0
1
1
1
1
1
4
1
0
0
1
1
1
1
1
1
0
13
0
0
1
1
4
0
1
1
4
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
1
1
1
2
5
0
0
1
1
1
1
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
1
1
1
2
5
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
13
1
1
0
4
4
4
0
0
0
1
1
0
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
2
1
1
1
1
0
0
1
1
1
1
0
0
2
0
0
1
1
0
1
1
1
1
17
1
2
0
1
0
1
1
1
4
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
0
5
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
0
5
0
0
0
0
8
8
8
2
1
1
1
2
1
1
1
2
1
1
1
2
2
2
1
5
1
1
1
5
1
5
1
2
0
1
0
0
0
0
2
0
1
0
1
8
0
0
0
8
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
0
4
1
1
0
0
8
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
8
1
1
1
1
1
1
6
1
0
1
6
1
1
1
1
6
1
0
1
6
1
1
1
0
1
1
1
1
1
1
1
4
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
2
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
0
1
1
1
0
1
1
1
2
1
1
1
0
4
4
1
0
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
4
2
2
4
4
2
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
2
4
4
1
1
1
1
1
0
1
0
1
1
1
1
2
0
1
4
1
2
2
1
1
5
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
2
5
1
0
0
1
2
0
1
1
2
1
1
1
1
4
2
1
2
1
1
0
1
1
1
1
4
1
1
1
1
1
1
1
1
1
0
1
2
1
0
1
1
1
1
1
1
4
1
1
0
0
1
1
1
1
1
1
2
2
1
2
2
2
1
4
1
4
4
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
4
4
1
0
1
1
1
1
1
1
2
1
0
2
1
1
1
1
1
1
0
1
1
1
1
1
1
4
1
3
3
3
3
3
3
1
1
1
1
1
1
5
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
3
1
0
1
1
2
1
0
1
1
2
1
1
1
1
1
2
1
1
2
1
0
2
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
2
0
2
0
5
2
1
1
0
0
5
1
1
2
1
2
1
1
2
1
1
1
1
1
1
2
2
1
1
2
1
1
2
0
1
2
1
0
1
1
1
3
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
2
1
1
1
1
1
1
1
1
1
5
2
0
0
1
1
1
1
1
1
1
2
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
6
2
0
0
1
1
1
1
1
1
1
2
0
0
2
0
0
1
1
0
2
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
2
1
1
1
1
1
1
1
1
2
1
5
1
1
1
1
2
2
1
1
1
1
1
1
1
1
5
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
2
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
4
1
1
1
1
1
1
4
4
0
1
1
0
1
2
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
6
2
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
2
1
1
1
5
2
0
0
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
3
8
8
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
1
2
1
1
1
2
2
1
1
1
1
1
1
1
5
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
6
6
0
0
6
6
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
0
1
1
1
1
1
1
1
1
1
1
4
4
4
1
4
4
4
2
0
0
1
1
1
4
1
4
1
4
1
4
4
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
4
4
4
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
4
4
4
1
1
1
1
1
1
1
4
4
4
4
4
4
1
6
1
1
1
1
1
1
1
1
4
4
4
1
1
1
1
1
1
4
4
1
1
1
1
1
1
1
1
4
4
4
1
1
1
1
1
1
4
4
1
1
1
1
1
1
1
1
1
1
4
4
4
4
4
4
4
0
1
5
0
0
0
3
3
3
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
0
2
1
1
2
2
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
2
2
2
2
5
1
1
5
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
2
1
1
1
1
0
1
5
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
2
1
5
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
2
1
1
1
1
0
2
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
5
13
0
1
2
1
2
1
1
1
1
1
1
0
1
1
0
1
1
1
1
2
1
1
0
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
4
2
5
1
1
1
0
1
4
5
13
0
1
2
1
1
1
1
4
4
4
0
1
1
0
1
1
1
2
0
1
1
1
1
1
1
4
1
2
0
1
1
1
1
1
1
4
4
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
13
3
3
3
3
3
3
2
1
1
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
1
1
0
2
0
1
1
5
3
26
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
5
2
2
1
1
2
1
0
2
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
2
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
5
0
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
2
1
1
1
1
1
1
1
1
1
1
6
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
5
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
2
0
0
1
1
1
1
0
2
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
4
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
0
0
1
2
0
1
1
1
1
1
1
1
0
2
1
1
1
0
1
1
0
3
3
3
1
1
4
1
1
1
1
1
1
1
1
1
1
1
4
1
4
1
1
1
2
1
0
1
1
1
1
1
1
1
1
1
1
1
1
4
4
4
4
4
4
4
4
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
11
3
3
3
3
2
2
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
1
2
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
4
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
2
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
0
0
0
0
1
1
1
1
1
1
4
1
1
1
1
1
1
4
0
1
1
0
0
1
4
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
4
4
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
13
3
3
3
3
3
3
2
1
0
1
1
1
1
2
1
1
1
1
0
0
1
0
1
1
1
1
1
1
2
1
0
1
1
1
1
1
1
2
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
4
1
4
1
4
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
2
9
5
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
8
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
5
0
0
0
1
1
5
0
0
0
8
5
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
6
6
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
6
1
1
2
4
2
1
2
1
2
1
4
4
4
2
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
3
3
3
1
4
0
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
9
1
9
9
2
2
1
1
1
1
2
2
2
2
5
0
0
0
0
2
1
1
2
1
1
2
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
2
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
13
1
1
1
0
0
0
0
1
1
4
1
1
1
1
1
1
4
4
0
1
1
1
1
1
0
0
0
4
1
1
1
0
4
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
4
4
1
0
2
2
1
1
1
1
1
1
4
4
1
0
1
0
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
9
9
1
0
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
2
1
0
1
1
1
0
1
1
1
2
1
1
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
1
0
1
1
1
1
1
4
1
1
1
5
2
2
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
2
0
1
1
1
1
1
1
1
2
1
2
1
1
1
2
1
1
1
1
2
1
1
5
0
0
0
1
1
1
1
1
1
0
1
1
0
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
0
0
1
1
0
3
1
0
1
1
0
1
1
1
1
2
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
4
0
1
2
1
0
1
1
1
1
1
1
5
1
4
4
4
1
1
1
2
1
1
1
1
1
1
4
1
1
4
0
1
1
1
1
0
1
1
1
2
1
1
1
1
5
1
2
1
5
2
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
2
1
1
1
1
1
0
1
1
1
1
2
1
1
1
2
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
0
6
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
6
1
0
1
1
1
2
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
4
2
1
1
1
1
1
0
5
8
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
8
1
5
1
1
2
1
1
1
1
1
1
2
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
0
0
0
1
1
3
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
3
0
0
0
0
1
1
0
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
2
2
0
2
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
0
1
1
1
1
1
4
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
5
1
1
1
1
4
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
3
3
3
1
1
1
2
1
1
1
0
1
1
1
1
3
1
1
1
1
2
1
1
2
0
1
1
1
1
1
1
1
1
2
1
1
2
1
2
0
5
2
1
1
1
1
1
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
2
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
2
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
3
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
3
1
3
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
13
0
0
0
8
8
16
1
1
1
1
1
1
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
3
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
2
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
2
1
1
2
1
0
1
1
0
1
1
1
1
1
0
2
1
1
1
1
1
3
3
3
1
1
1
2
0
1
1
1
2
1
1
1
2
1
1
2
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
2
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
1
2
1
2
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
2
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
4
0
1
1
0
1
0
1
1
4
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
2
1
1
1
1
1
1
1
1
1
1
2
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
3
0
0
0
4
1
1
0
3
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
3
3
0
1
1
0
5
1
3
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
2
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
2
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
4
0
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
0
0
0
1
1
0
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
3
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
0
0
1
0
1
1
0
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
5
0
0
0
1
1
1
1
0
5
0
0
0
1
1
1
1
5
0
0
0
8
8
8
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
5
0
13
1
1
0
0
0
1
1
1
1
1
2
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
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
2
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
3
1
0
0
0
0
0
1
1
0
3
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
2
2
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
2
1
1
2
1
1
1
1
1
1
3
1
1
1
1
0
1
0
0
2
1
5
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
0
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
4
2
1
2
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
4
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
4
4
4
1
1
1
1
1
1
1
2
1
0
1
0
2
1
1
1
1
1
1
1
2
1
1
0
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
5
1
1
1
5
0
0
2
1
1
1
1
1
1
1
2
2
1
1
2
2
1
2
2
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
2
1
2
1
0
2
1
1
1
1
1
1
5
1
1
2
1
2
1
1
1
1
1
1
0
1
3
3
5
1
0
1
2
1
1
1
1
0
1
0
1
1
5
2
1
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
1
1
1
2
5
1
0
0
0
0
1
2
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
2
1
1
1
1
0
1
5
0
0
0
1
2
2
1
1
1
1
2
1
1
1
0
1
1
0
1
1
1
1
1
3
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
2
2
0
5
0
0
0
2
1
2
1
1
1
5
1
2
1
1
2
1
2
0
0
2
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
2
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
2
0
1
0
1
0
1
1
1
1
1
1
1
2
0
1
2
1
1
1
1
1
1
3
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
1
0
0
2
1
1
1
5
1
1
1
1
0
1
1
1
0
1
1
4
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
2
1
5
0
0
1
1
1
1
1
1
2
1
0
1
1
1
1
1
1
2
5
1
5
1
1
1
4
0
0
4
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
3
3
3
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
2
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
5
5
1
1
1
1
1
1
0
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
0
0
0
1
1
1
1
0
1
1
2
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
6
12
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
6
1
1
6
6
6
6
2
2
1
1
1
1
1
1
1
1
0
2
2
1
1
1
1
1
1
6
4
3
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
0
1
0
0
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
1
2
1
2
2
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
3
3
2
2
1
1
2
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
2
2
2
2
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
2
1
1
1
2
1
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
0
0
1
1
1
1
1
2
1
2
1
1
2
1
2
1
0
0
1
1
1
1
0
2
1
1
1
1
1
3
3
3
1
1
1
2
0
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
2
1
1
1
2
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
5
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
2
0
0
1
1
1
2
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
1
0
1
1
1
4
4
0
1
2
1
1
2
1
1
1
1
3
1
1
1
0
1
1
2
1
1
1
1
3
1
1
1
1
1
0
0
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
2
2
2
0
0
5
4
4
1
2
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
0
5
1
1
1
1
1
1
4
1
2
1
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
4
1
2
1
1
0
1
1
1
1
1
1
4
1
1
1
1
1
2
5
1
1
1
2
1
1
2
1
1
1
1
2
2
2
1
1
1
1
1
1
1
1
4
4
1
1
1
1
1
1
1
1
2
0
1
1
1
1
0
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
0
2
1
1
1
1
1
1
5
1
1
1
1
1
1
1
3
3
3
1
2
1
1
1
1
1
0
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
3
1
1
1
1
1
2
0
1
0
0
1
2
1
1
1
1
2
1
1
1
0
1
1
0
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
5
0
0
2
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
1
1
1
1
1
1
2
1
5
0
1
1
2
1
1
1
0
1
1
3
3
3
1
1
2
2
1
2
1
1
5
1
1
0
1
3
3
3
1
1
1
1
1
1
1
1
2
1
1
2
0
1
1
1
2
1
1
1
1
0
2
1
1
0
1
2
1
1
1
1
1
1
4
3
2
1
2
1
1
1
1
1
1
1
1
5
1
2
5
2
1
2
2
1
0
0
1
1
1
1
1
1
2
1
1
1
1
1
1
2
1
2
1
2
1
2
2
1
1
1
1
1
1
2
1
1
1
2
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
2
1
1
1
1
0
1
2
2
1
0
2
0
1
2
1
2
1
1
1
2
1
1
1
1
1
2
1
1
1
1
0
1
2
1
1
1
1
1
1
2
5
1
0
0
2
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
5
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
0
1
0
0
0
0
1
1
0
2
4
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
2
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
0
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
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
2
2
5
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
9
1
1
9
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
2
1
1
1
2
1
1
1
1
1
1
5
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
2
1
1
2
1
1
1
1
1
0
2
1
1
1
1
1
1
5
1
1
1
1
1
1
1
3
3
3
2
1
5
2
1
1
1
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
0
3
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
0
3
17
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
10
0
6
6
0
1
0
1
1
1
1
1
1
0
8
8
8
8
0
0
0
13
1
1
1
1
1
1
1
1
1
0
1
1
1
2
1
0
1
1
1
1
1
1
0
4
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
8
0
0
8
1
2
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
4
0
1
1
1
1
0
0
8
9
1
1
2
1
0
1
1
1
1
9
1
1
9
1
1
1
1
1
1
0
0
8
1
0
1
1
1
0
1
1
1
2
1
2
0
1
1
6
1
0
0
2
1
2
1
1
6
1
2
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
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
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
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
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
2
1
0
0
1
1
1
0
1
1
1
2
0
1
1
1
1
1
1
1
1
5
5
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
1
2
0
1
1
1
0
1
5
13
0
1
1
1
1
1
1
5
1
1
0
1
0
1
1
1
2
2
1
0
1
1
1
1
0
2
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
2
1
2
2
1
2
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
2
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
3
3
4
1
2
4
0
1
1
1
1
1
1
1
1
4
0
1
1
2
1
1
2
1
1
1
1
1
1
5
1
1
1
1
4
1
1
1
1
1
1
1
1
4
4
4
1
1
1
1
1
1
1
4
1
2
1
2
1
2
4
4
4
1
2
1
1
1
1
1
1
2
2
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
0
1
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
4
4
1
1
1
1
1
1
2
1
1
1
1
1
0
0
1
1
2
1
1
4
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
4
0
1
0
1
1
2
1
1
1
1
3
1
1
1
1
1
1
3
1
1
2
1
1
2
1
1
1
0
1
1
2
1
1
1
0
1
0
1
0
2
0
1
1
1
1
1
1
1
1
1
4
1
1
1
2
1
2
1
2
2
2
1
1
1
1
1
4
1
1
1
1
1
1
1
2
2
6
6
1
1
1
1
1
1
0
4
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
2
1
1
1
1
1
1
1
4
1
1
1
1
2
1
1
1
0
0
1
1
1
2
1
1
1
2
2
1
1
1
4
1
2
5
1
1
1
5
1
1
1
1
5
2
0
1
2
1
1
1
0
1
1
1
4
0
1
1
2
1
1
1
2
1
2
1
1
1
1
4
4
4
2
5
1
1
1
0
4
1
1
2
1
1
1
2
1
1
2
1
1
1
1
0
1
0
1
0
1
2
4
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
2
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
2
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
2
1
1
1
2
1
1
2
0
1
1
0
1
1
3
0
1
1
1
1
5
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
2
0
0
1
1
1
1
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
2
4
1
1
1
1
1
0
1
1
1
1
1
3
5
1
1
5
1
2
1
2
1
1
1
1
1
1
1
1
1
1
4
2
2
1
5
2
1
1
1
1
2
1
2
1
1
1
2
0
1
1
0
1
1
1
1
1
1
1
3
3
3
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
2
2
0
0
0
2
1
0
0
1
1
1
0
1
1
1
1
1
1
4
2
0
0
2
2
2
2
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
2
5
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
2
1
1
1
2
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
2
1
1
1
1
0
0
2
1
5
1
1
1
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
2
1
5
1
1
1
1
1
1
1
1
1
2
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
9
9
9
9
0
2
0
1
2
1
1
1
1
2
1
1
1
1
1
1
0
0
1
1
1
2
1
1
1
2
1
1
5
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
5
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
0
0
1
4
4
1
1
0
1
0
2
0
0
1
1
1
1
1
1
1
0
0
1
1
2
1
1
1
1
1
1
2
0
2
1
1
1
1
0
1
1
1
0
2
1
1
1
1
1
1
1
1
2
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
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
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
2
1
1
2
1
1
1
1
1
2
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
2
1
1
2
1
1
2
2
1
2
1
1
0
1
1
0
0
1
0
0
13
0
0
0
5
0
1
1
1
1
1
1
1
0
0
2
1
1
1
1
1
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
0
5
0
0
1
1
1
1
1
1
1
1
1
1
5
0
0
0
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
13
1
1
0
4
4
4
0
0
0
1
1
0
1
1
1
1
1
1
1
4
1
1
1
1
1
1
4
1
0
0
1
1
0
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
2
1
2
1
1
1
1
1
1
2
1
0
1
0
1
1
0
1
1
1
1
1
1
1
2
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
2
1
1
0
1
1
0
5
1
1
2
1
2
1
1
2
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
0
0
1
1
1
1
1
1
2
1
1
1
1
0
0
1
1
1
1
1
1
2
1
1
1
6
6
1
1
2
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
6
1
1
1
1
1
1
1
1
0
0
1
1
2
1
1
1
1
1
1
1
0
1
1
1
1
6
6
1
1
1
1
2
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
2
1
1
1
2
1
6
4
1
2
1
0
0
1
1
2
1
1
1
2
2
1
1
1
2
1
1
1
2
1
1
1
1
1
1
1
1
4
4
22
22
22
0
0
2
1
1
1
1
1
2
1
0
1
1
2
0
2
1
1
0
0
2
13
0
0
0
13
0
0
0
13
0
0
0
1
1
2
1
1
1
2
1
1
1
1
1
1
0
0
0
5
8
8
1
0
1
1
1
1
1
9
1
1
1
1
1
1
1
1
0
0
1
1
1
9
1
0
1
1
0
9
9
1
1
1
2
1
2
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
8
0
8
2
1
1
1
1
5
1
1
2
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
0
0
0
1
0
0
1
1
5
1
1
1
1
1
2
8
1
1
1
1
1
1
1
1
0
5
0
0
0
8
0
2
0
1
6
1
0
1
0
2
2
1
1
1
1
0
0
0
0
1
1
0
0
0
0
5
0
0
0
0
1
2
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
6
1
1
6
1
1
6
1
1
0
2
5
1
2
1
1
0
1
2
0
1
1
0
1
2
2
1
1
1
1
1
2
1
1
1
1
1
1
0
2
1
1
1
1
1
1
0
1
2
1
1
1
1
1
1
1
1
0
2
5
1
1
1
0
1
2
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
13
0
0
0
1
1
2
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
13
0
0
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
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
0
1
1
0
1
1
1
1
0
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
0
0
1
2
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
2
0
1
1
1
1
1
0
1
2
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
2
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
2
1
1
1
1
2
1
0
1
2
1
1
0
1
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
2
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
2
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
2
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
2
1
1
1
1
1
1
1
1
1
2
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
5
13
0
1
2
1
2
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
0
1
1
1
1
1
1
4
1
1
1
2
1
2
5
1
1
0
0
2
1
1
1
1
1
1
1
1
0
5
1
2
1
1
1
1
1
1
0
1
2
1
1
1
1
1
1
2
1
0
1
1
1
0
1
1
1
1
2
1
2
1
2
5
0
1
1
1
1
1
1
1
1
2
0
1
13
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
2
2
1
1
2
2
2
2
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
2
2
1
1
1
1
2
0
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
0
2
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
2
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
2
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
2
1
9
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
4
4
1
1
1
1
1
2
2
2
2
1
1
2
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
0
1
1
4
1
1
2
1
1
1
1
1
1
1
1
1
1
4
1
2
1
2
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
4
1
1
1
1
1
1
1
1
2
1
2
1
1
0
1
1
1
2
1
1
2
1
4
1
1
0
1
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
0
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
4
1
1
2
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
4
4
2
2
1
1
1
1
2
1
2
0
1
1
1
1
1
1
1
1
1
1
1
1
4
4
1
0
1
2
0
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
4
2
2
4
4
1
1
1
1
1
1
2
1
1
2
1
1
1
1
4
4
4
4
1
2
1
1
1
1
1
1
1
1
6
1
1
1
1
2
1
1
1
0
1
1
2
1
1
4
1
1
1
1
1
1
4
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
4
2
1
1
1
1
1
1
0
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
4
2
1
2
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
4
1
1
1
1
4
1
1
1
2
4
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
5
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
4
2
1
1
1
1
1
2
1
1
1
1
1
5
1
1
2
1
1
4
1
1
1
1
1
1
2
0
0
1
1
1
2
1
1
1
0
1
2
1
2
1
1
1
2
0
0
1
1
4
4
1
1
2
1
2
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
2
1
4
3
1
3
3
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
4
1
1
1
2
1
1
1
1
1
1
1
9
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
2
4
1
1
1
1
1
1
1
1
1
2
1
0
1
2
1
1
1
1
1
1
4
4
2
1
1
5
1
1
1
1
1
1
2
1
1
2
6
4
0
1
1
1
0
1
2
1
1
1
1
0
4
1
1
1
2
1
2
1
1
1
2
0
0
1
0
4
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
2
1
1
2
1
2
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
0
0
0
1
1
2
1
1
1
1
1
1
1
1
0
4
1
1
2
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
4
4
0
1
1
1
2
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
0
1
2
1
1
1
1
1
4
1
1
1
1
0
1
1
0
2
1
0
0
1
1
1
4
2
27
2
4
4
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
2
1
1
2
2
1
1
1
4
2
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
2
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
4
0
0
2
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
2
1
0
1
0
0
0
0
1
1
2
1
0
2
1
0
1
1
1
1
0
0
0
1
0
1
2
1
1
1
0
1
0
0
1
0
1
1
1
1
1
4
4
1
1
1
13
1
1
0
1
1
1
1
5
0
0
4
4
4
1
1
1
1
4
1
1
1
1
0
1
0
2
1
1
2
1
0
0
1
1
1
1
1
1
1
1
4
1
1
1
4
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
0
1
1
0
1
1
1
1
2
1
1
1
1
5
1
0
1
1
2
1
1
1
1
0
1
2
1
1
1
1
1
1
4
1
1
1
2
2
1
4
1
1
1
1
1
1
1
2
2
1
2
2
2
1
1
1
1
1
4
1
1
1
1
4
1
2
1
2
1
1
2
1
1
1
2
5
2
1
1
1
1
1
2
1
1
1
1
1
5
1
1
1
4
1
1
2
2
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
2
1
1
2
1
1
1
1
1
5
1
1
1
1
1
1
1
1
2
1
1
1
1
0
1
0
1
1
1
1
1
1
4
4
1
0
0
1
0
0
1
1
1
1
1
2
1
1
1
1
1
1
1
4
1
1
1
1
1
1
4
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
2
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
2
1
1
2
1
1
2
1
1
1
1
1
1
2
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
5
0
0
0
1
1
5
0
0
0
1
5
0
0
0
5
2
1
5
1
1
1
1
1
2
0
0
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
2
2
1
1
1
1
1
1
0
0
0
0
1
3
3
3
1
1
3
1
3
3
1
0
1
1
3
3
3
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
3
3
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
9
9
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
5
1
2
1
5
1
2
1
2
2
2
1
1
5
1
1
1
2
2
5
2
0
0
1
1
0
2
5
1
2
1
0
1
2
1
1
1
1
0
1
1
2
1
1
2
1
1
1
1
1
1
0
2
0
0
1
1
1
1
1
0
2
1
1
0
1
2
2
1
1
1
1
1
2
2
1
0
1
1
5
2
1
1
2
1
1
2
2
1
2
1
1
0
1
1
0
0
1
0
0
13
0
0
0
13
0
0
1
1
0
1
1
1
0
0
2
1
1
1
1
1
1
0
2
1
1
1
2
0
1
0
1
1
1
1
1
1
1
1
1
2
1
0
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
0
0
1
4
1
1
1
1
1
1
1
1
1
1
1
1
2
4
2
2
2
1
1
1
1
2
2
1
1
1
1
1
1
5
5
2
2
1
1
1
1
1
1
1
1
0
0
1
1
0
0
2
2
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
2
5
1
1
1
2
2
2
1
2
1
1
1
2
5
0
0
1
2
1
1
1
1
4
0
1
1
1
1
1
1
1
1
2
1
0
1
0
0
5
1
1
2
1
1
2
5
2
0
0
1
1
5
2
1
2
2
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
2
1
1
0
1
1
1
5
1
1
1
1
1
1
1
0
1
1
1
2
1
0
2
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
4
1
1
1
1
1
1
1
1
1
1
0
2
0
1
0
0
1
1
1
4
0
1
1
1
2
1
1
1
1
1
1
1
1
0
1
2
1
1
1
1
0
0
0
0
1
2
1
1
2
1
0
1
1
1
0
2
1
1
2
1
1
1
1
0
2
1
1
2
1
1
1
1
0
2
1
1
1
2
2
1
1
1
1
2
0
1
1
1
1
1
1
0
0
1
1
1
2
2
1
0
1
1
1
2
1
1
0
5
0
0
0
2
13
2
0
2
1
0
1
1
1
1
3
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
2
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
2
1
1
2
1
13
1
2
2
1
1
1
0
0
0
0
2
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
0
1
1
1
0
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
0
1
0
0
1
2
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
3
1
1
1
1
1
1
1
2
1
1
1
0
1
1
1
1
1
1
2
1
1
1
0
0
1
0
3
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
2
1
2
1
0
1
1
2
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
2
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
2
2
2
1
1
1
1
1
5
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
27
2
1
1
1
1
1
1
2
0
1
0
0
1
2
1
2
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
13
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
2
13
0
0
0
0
0
0
5
0
0
0
5
0
0
0
5
0
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
0
1
1
1
1
1
1
5
0
0
0
1
1
1
2
0
1
1
1
2
1
1
1
1
1
1
1
5
0
0
0
1
1
1
1
1
2
1
2
1
1
2
1
1
1
1
1
1
2
2
2
1
1
1
1
1
1
1
1
1
1
2
2
2
1
1
1
1
1
1
1
1
1
5
0
0
0
0
1
1
1
1
1
1
0
0
0
2
1
2
1
1
1
1
1
1
1
2
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
2
2
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
2
2
0
0
0
0
1
1
1
1
1
1
1
1
5
0
0
0
0
0
1
1
1
1
1
1
1
2
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
4
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
2
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
2
1
1
1
1
1
1
1
1
2
2
2
2
1
1
1
1
1
1
1
1
0
1
4
2
1
1
1
1
1
2
1
2
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
2
2
1
1
0
1
1
5
0
0
0
0
1
1
5
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
2
0
1
1
6
1
1
0
1
1
1
1
1
1
2
1
1
1
1
0
1
1
1
1
1
6
1
1
0
1
1
1
1
1
1
1
1
5
1
5
1
1
1
1
2
1
1
1
0
1
0
2
1
1
1
1
1
1
2
1
1
1
1
6
1
1
2
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
6
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
17
0
0
1
1
1
1
2
2
1
1
1
1
0
0
2
2
4
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
4
1
0
1
1
1
1
2
1
1
1
1
1
4
2
1
1
1
1
1
1
1
1
4
1
1
1
1
1
2
1
0
1
1
2
1
1
2
2
2
2
12
1
0
1
1
1
0
0
1
0
1
0
0
13
0
0
0
13
0
0
0
8
8
8
1
2
1
1
2
1
1
1
1
1
1
1
0
2
1
1
1
1
0
0
1
0
0
1
2
1
2
1
2
1
1
0
2
8
8
8
8
1
1
1
1
1
1
5
0
0
0
1
1
1
2
0
1
1
1
1
5
0
0
0
1
1
1
2
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
6
2
8
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
6
2
8
0
0
0
8
8
1
2
1
1
2
1
1
2
2
1
2
2
1
0
1
1
1
5
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
8
8
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
2
1
1
1
1
2
5
2
2
1
2
1
5
2
2
2
1
1
1
1
1
1
0
5
1
0
0
0
8
1
1
2
1
1
1
2
1
1
0
1
1
1
1
1
1
1
1
0
0
1
8
5
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
8
1
9
1
2
1
1
0
1
9
1
2
1
1
1
0
1
9
1
1
0
0
8
1
1
1
1
1
1
0
1
0
2
1
0
1
1
1
1
1
1
1
8
5
1
1
0
0
2
2
0
2
0
1
1
1
1
1
8
2
2
7
3
3
3
3
3
3
0
2
0
1
1
2
1
5
2
1
1
2
1
0
1
1
2
1
1
1
1
0
0
0
2
1
1
1
1
1
1
2
0
1
1
1
0
1
1
1
2
1
1
1
1
1
1
1
0
1
0
6
1
1
1
1
1
0
1
1
2
0
1
1
0
1
0
1
1
1
1
1
1
1
0
6
1
1
1
1
1
1
2
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
6
6
1
1
2
1
1
2
1
1
1
1
2
1
2
1
1
2
1
1
1
1
1
1
1
0
1
1
0
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
1
1
1
1
2
1
2
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
2
1
1
1
1
0
0
0
1
1
1
1
3
2
1
1
2
1
1
1
1
3
2
1
1
1
2
1
1
1
1
1
1
5
0
0
2
1
1
1
1
2
0
1
1
1
1
1
1
1
0
0
1
1
2
1
2
2
1
1
1
1
1
1
1
5
1
1
5
1
0
0
0
0
0
0
1
2
1
1
1
0
1
1
0
0
1
1
1
0
1
1
2
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
13
0
0
0
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
13
0
0
0
1
1
2
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
7
0
7
1
1
1
1
1
1
16
4
4
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
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
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
2
1
1
2
2
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
2
1
0
0
0
5
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
0
5
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
2
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
2
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
2
1
1
2
1
1
0
1
1
1
1
1
1
1
6
1
2
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
2
1
1
2
1
2
0
0
13
0
0
0
0
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
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
2
1
1
1
1
1
2
1
1
2
1
1
1
0
0
1
1
2
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
0
1
1
1
0
0
1
3
1
0
1
0
1
1
1
2
1
2
2
2
1
1
1
1
0
1
1
1
1
0
2
1
1
1
1
1
1
5
0
0
2
1
0
2
2
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
2
1
0
1
1
5
1
1
1
1
1
1
1
1
1
5
0
0
0
1
1
1
1
1
1
1
1
1
2
1
0
2
5
0
0
1
1
1
1
1
1
1
0
5
0
1
1
1
1
1
1
1
2
1
0
2
1
1
1
1
1
1
1
1
1
1
2
2
1
0
2
5
0
0
1
1
1
1
1
1
1
1
0
5
0
1
1
1
1
1
1
1
2
1
0
2
2
1
1
1
1
1
1
1
2
2
1
2
1
1
0
0
1
0
4
1
1
0
5
0
1
1
1
1
1
1
2
2
1
1
1
2
0
1
1
1
1
1
1
0
2
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
1
1
0
1
1
1
1
1
1
1
1
1
1
2
1
2
0
1
1
2
2
2
2
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
2
1
1
1
1
0
2
0
1
1
2
1
1
2
1
1
1
1
1
1
1
1
3
1
0
1
1
2
1
1
1
1
0
0
1
1
1
1
1
1
2
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
2
1
1
1
1
1
1
0
2
1
1
1
1
1
1
0
1
1
2
1
0
1
1
1
1
1
1
0
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
4
2
1
1
1
1
1
1
1
1
1
1
4
4
1
1
2
1
1
1
1
1
1
0
4
1
2
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
4
1
1
1
1
1
5
1
5
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
0
0
4
4
1
2
1
1
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
1
4
1
1
5
1
1
1
1
2
2
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
2
1
2
1
1
1
1
0
1
1
1
1
1
1
0
1
1
4
1
1
0
1
1
1
1
1
1
4
4
1
1
1
1
2
1
1
1
1
1
1
2
1
4
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
2
2
0
0
0
0
1
2
0
1
1
1
1
4
4
1
1
0
1
1
0
0
1
1
0
2
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
2
5
1
2
0
0
1
4
1
2
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
4
1
2
2
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
0
0
0
0
1
0
1
1
1
1
4
1
0
1
1
1
1
1
1
1
2
1
2
1
1
1
2
1
1
2
1
1
4
4
1
1
1
1
1
1
1
1
1
1
0
2
0
0
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
2
0
3
3
1
2
1
1
4
1
1
1
1
2
1
1
1
1
1
4
2
1
1
1
1
1
1
2
2
2
1
2
2
2
1
5
1
1
1
5
1
5
1
2
0
1
0
0
2
1
0
0
1
2
1
1
1
1
1
1
2
2
2
1
2
2
2
1
5
1
1
1
5
1
5
1
2
0
1
0
0
2
1
0
0
1
4
1
1
1
1
1
1
1
1
2
1
2
1
2
1
1
1
1
1
1
4
2
1
1
1
2
2
1
1
4
1
1
2
1
1
1
2
1
1
2
1
1
1
1
1
0
1
1
1
1
1
1
4
0
0
4
1
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
2
1
1
2
1
2
1
2
1
1
1
1
1
1
1
1
1
0
0
2
0
0
1
1
1
1
1
4
1
2
1
2
1
0
1
1
1
1
1
1
1
1
1
1
1
1
4
2
1
1
1
2
1
1
1
1
1
1
2
1
0
0
2
2
0
0
1
1
1
1
1
1
1
1
1
4
1
1
2
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
4
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
0
1
1
4
2
1
1
1
1
2
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
2
1
1
1
1
2
1
1
0
1
0
1
1
1
1
1
1
1
4
0
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
4
1
1
1
1
2
1
1
0
1
1
1
1
1
1
4
0
1
1
0
1
0
1
1
0
1
1
1
2
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
4
2
27
2
4
4
1
1
1
1
1
1
1
1
1
0
1
0
1
1
3
3
3
1
1
4
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
5
1
0
4
1
0
0
2
1
1
1
1
1
1
0
1
1
2
1
1
0
1
1
1
1
1
1
4
1
0
0
1
1
1
1
1
4
1
1
1
0
1
1
0
1
0
1
2
0
1
2
1
1
1
1
5
1
0
1
1
2
1
1
1
1
0
1
2
1
1
1
1
1
1
4
1
1
1
2
2
1
4
1
2
1
2
1
2
2
1
1
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
4
0
1
0
1
0
1
0
1
1
1
2
1
1
4
1
1
1
1
4
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
2
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
2
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
2
1
1
5
1
1
1
1
2
1
2
1
1
1
2
1
2
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
2
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
2
0
0
2
1
1
1
1
0
1
1
2
2
2
2
2
0
0
1
1
1
1
1
1
1
1
4
1
1
1
1
2
1
1
2
1
1
1
1
3
1
1
1
0
1
1
2
1
1
3
1
1
3
1
0
0
1
1
1
2
1
0
1
1
1
2
2
1
1
1
0
1
1
1
3
1
1
1
0
0
2
1
1
1
1
5
1
1
1
1
1
1
1
2
2
1
0
1
1
1
2
0
1
1
2
1
1
1
1
1
1
1
2
2
1
1
1
0
2
1
2
1
1
1
1
1
1
1
0
1
1
5
0
0
2
1
1
2
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
2
1
1
1
1
1
0
1
1
1
1
2
1
1
1
1
9
1
2
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
2
1
1
1
0
4
4
4
2
0
1
1
1
1
1
1
2
1
1
1
4
1
1
1
1
1
0
1
2
1
1
1
1
2
1
1
1
3
1
1
1
0
1
1
2
1
1
1
1
1
0
1
1
0
0
1
1
1
5
0
0
2
1
1
1
1
1
2
1
1
1
1
2
1
1
1
0
1
1
0
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
2
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
2
1
2
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
2
1
1
1
2
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
2
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
13
0
1
1
1
0
2
1
1
1
1
4
1
0
1
0
1
2
1
1
1
1
1
1
1
2
1
1
0
0
0
3
1
1
1
2
1
1
1
1
2
0
1
1
2
1
5
0
0
0
1
1
1
1
0
1
1
2
1
1
2
2
1
0
1
1
1
1
1
1
2
2
1
1
1
1
5
0
0
0
1
1
0
1
0
5
1
0
0
1
0
1
0
5
1
0
0
1
2
1
2
1
1
1
1
5
1
1
2
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
2
1
2
0
0
1
1
3
3
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
3
3
1
1
1
1
1
2
1
1
2
1
2
1
1
1
1
0
0
0
3
1
1
1
1
1
3
1
2
2
1
0
2
3
1
1
1
1
1
1
1
0
1
1
1
2
1
1
2
1
1
1
1
1
2
1
2
2
1
1
1
1
1
1
1
9
2
1
2
2
1
1
1
1
1
1
1
9
0
5
0
0
0
1
1
1
1
1
1
1
1
1
0
1
9
9
0
0
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
2
1
1
1
2
2
1
2
1
1
2
1
1
1
5
5
2
1
1
1
2
2
2
1
2
2
1
1
2
2
2
1
2
2
0
5
0
0
0
2
2
1
2
2
2
2
2
1
2
1
1
2
1
0
1
1
0
2
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
2
1
1
1
2
1
1
0
1
1
1
1
2
0
1
1
1
0
2
1
1
1
0
2
1
1
0
2
1
1
1
1
0
2
1
1
1
2
1
13
1
0
0
1
1
0
0
1
0
1
1
1
0
0
2
1
0
24
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
0
2
1
2
1
0
1
2
2
1
1
1
1
1
0
1
2
1
1
1
1
1
0
2
5
1
1
1
1
1
0
0
2
2
1
1
0
1
0
1
1
2
2
1
1
0
1
2
1
1
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
0
1
1
0
2
5
1
1
1
1
2
0
1
0
2
5
1
1
1
1
1
1
1
2
1
0
2
2
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
2
0
2
0
1
1
1
1
1
1
0
1
1
1
1
1
1
2
1
1
1
0
0
1
0
3
1
2
1
1
1
1
1
1
1
1
1
2
1
0
2
1
0
1
1
1
1
1
1
1
1
2
1
1
1
1
2
1
0
1
1
1
1
2
1
1
0
1
6
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
2
1
2
1
4
1
5
2
0
0
1
1
1
1
2
1
1
1
2
1
0
1
1
1
1
1
1
5
0
0
2
2
2
1
1
1
1
3
3
1
1
1
1
1
1
3
0
1
1
5
2
0
0
1
4
1
1
1
1
5
0
0
2
1
1
1
4
2
0
5
0
2
1
1
1
5
1
1
3
3
3
2
1
1
1
4
1
1
1
5
2
0
0
0
5
0
1
1
1
1
1
1
5
0
0
2
4
2
1
2
1
1
1
1
1
1
1
0
1
2
0
1
0
0
1
1
1
1
1
1
1
1
0
1
2
0
1
0
0
1
0
0
0
28
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
2
0
2
1
1
2
1
2
1
1
2
1
3
3
3
2
1
1
1
1
1
1
1
0
0
0
5
1
1
0
1
1
1
1
1
2
1
2
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
2
1
1
1
1
1
4
2
0
1
1
1
1
0
1
2
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
21
1
0
0
0
1
1
1
2
1
1
2
1
0
1
1
1
1
1
1
2
0
0
2
0
0
1
1
1
1
1
2
1
1
0
1
0
0
1
1
1
1
1
1
2
1
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
5
1
1
0
1
1
4
1
4
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
2
1
1
2
1
1
1
1
0
2
1
1
0
1
1
0
1
1
2
1
0
1
2
1
1
2
1
2
0
0
1
1
2
1
1
1
0
1
1
1
1
2
1
1
1
0
1
0
1
1
0
2
0
1
0
2
1
1
1
0
1
1
1
1
2
1
1
2
0
0
1
1
0
1
1
1
1
2
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
2
1
2
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
5
0
0
2
1
0
2
1
1
1
1
1
1
1
1
1
0
1
1
1
2
1
0
2
1
1
4
2
0
1
1
4
1
2
1
1
1
1
0
2
2
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
2
0
1
1
2
2
1
2
2
1
1
0
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
2
0
1
0
1
1
1
0
0
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
2
1
1
1
1
1
1
0
1
1
2
0
1
0
2
1
1
2
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
2
1
0
0
1
1
1
1
1
1
1
2
1
2
2
2
1
1
1
1
1
1
2
1
0
1
0
0
1
2
1
1
1
1
1
0
1
1
1
1
1
1
1
1
2
1
1
1
1
3
1
1
0
1
0
1
0
0
1
1
2
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
2
1
1
0
1
1
9
1
1
9
1
2
1
9
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
2
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
2
1
0
1
1
1
0
0
2
0
1
1
1
1
1
1
0
2
0
1
2
1
1
1
5
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
0
2
0
3
0
1
1
1
1
1
1
0
1
1
1
2
1
1
1
1
2
1
1
1
0
0
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
0
0
0
1
0
1
1
1
2
2
1
1
1
1
1
4
1
1
1
1
1
1
1
1
0
1
0
1
1
1
5
1
2
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
4
1
1
2
1
1
1
1
1
1
1
1
1
1
0
0
1
1
4
1
1
0
0
2
0
1
1
1
1
1
1
1
2
2
2
1
1
1
1
0
0
2
0
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
2
1
0
1
1
1
1
2
1
1
1
1
1
1
2
1
0
1
1
1
1
1
1
0
1
1
2
1
0
1
1
0
2
1
0
1
1
1
1
2
1
1
1
1
1
1
2
1
0
1
1
1
1
2
1
2
2
1
0
1
1
1
1
0
2
1
0
2
1
1
1
1
2
1
2
2
1
0
2
1
1
1
1
1
0
2
1
1
2
0
1
1
1
1
0
2
1
0
2
1
0
1
1
1
1
1
1
1
0
1
1
1
2
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
2
1
1
0
2
1
1
1
1
1
2
1
0
1
1
1
1
4
5
5
0
0
0
1
2
1
1
1
1
1
1
2
1
1
1
1
1
5
1
2
1
1
1
0
1
1
1
1
0
0
0
1
0
1
2
27
2
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
2
1
1
1
1
2
1
1
2
1
2
1
1
1
2
1
1
1
0
1
1
1
1
2
2
1
0
1
13
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
13
0
0
0
0
1
5
5
0
0
0
0
1
1
1
1
1
1
1
0
5
0
1
1
1
1
1
1
4
2
1
0
2
1
1
1
5
2
1
2
2
1
0
0
1
1
1
1
4
1
1
2
1
1
1
0
1
1
1
1
1
1
5
0
0
2
1
2
2
1
1
1
1
1
5
1
1
1
2
2
1
2
5
0
0
1
1
1
1
2
1
1
5
0
2
0
1
1
1
1
1
1
5
0
0
2
1
1
2
5
0
0
1
1
1
1
1
1
2
0
0
1
1
1
2
1
0
1
1
1
1
1
1
2
1
0
2
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
5
0
0
0
5
0
0
0
5
0
0
0
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
5
0
0
0
5
0
0
0
5
0
0
0
0
1
1
2
1
1
1
1
1
1
1
9
5
0
0
0
5
1
1
1
1
0
0
2
1
0
1
1
0
1
1
1
1
1
1
2
1
5
1
1
1
0
1
0
0
1
2
1
2
1
1
5
1
1
0
2
2
0
1
2
2
1
1
1
2
1
1
0
5
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
2
0
2
1
2
2
1
2
2
0
0
1
1
0
1
1
0
1
1
1
2
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
2
0
2
1
2
2
1
2
2
0
0
1
1
0
1
1
0
1
1
1
2
0
0
1
0
1
0
5
0
0
0
0
5
0
0
0
0
5
0
0
0
1
5
2
0
0
1
4
1
1
0
1
1
0
2
1
1
1
1
1
1
1
1
1
2
1
1
1
1
5
1
1
0
2
0
0
1
1
1
2
1
1
1
1
2
0
1
1
5
1
0
1
0
0
2
1
1
1
1
5
1
2
1
1
1
0
0
0
2
0
1
1
1
1
1
1
1
5
1
1
1
1
1
1
2
1
2
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
5
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
2
1
1
1
1
1
2
0
1
1
1
1
1
2
0
1
1
1
1
1
1
1
0
1
2
0
1
1
1
2
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
2
1
1
2
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
2
0
0
1
1
1
1
0
2
1
1
0
1
1
2
1
0
1
2
1
1
0
1
1
0
1
0
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
2
1
2
1
1
1
0
1
2
2
1
1
2
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
2
1
1
0
1
0
1
0
0
1
0
1
1
1
2
1
1
1
1
1
0
1
1
1
1
1
1
1
9
1
1
0
2
1
1
0
1
0
1
9
1
1
0
2
1
1
0
1
0
1
9
1
2
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
2
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
2
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
13
0
0
0
1
1
1
1
1
1
0
13
0
0
0
1
1
5
13
2
1
1
2
1
1
2
1
1
2
1
1
1
1
1
1
1
1
1
4
8
1
1
1
1
1
1
5
1
1
1
1
1
1
1
0
6
6
0
0
0
1
1
1
1
1
1
6
0
6
1
1
0
2
0
1
1
1
1
1
1
1
1
1
2
0
0
1
2
1
1
1
1
1
0
2
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
2
1
1
2
5
1
0
0
1
2
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
4
4
4
1
1
1
1
4
1
1
4
4
4
4
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
0
1
0
4
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
4
4
0
1
1
1
1
2
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
5
2
2
2
1
1
2
2
1
1
1
1
0
1
1
0
1
1
1
1
1
3
3
1
1
2
2
4
1
1
1
1
1
1
2
2
0
5
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
2
1
1
1
1
2
1
1
2
1
2
1
1
1
2
1
1
1
0
1
1
1
1
5
13
1
2
0
0
5
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
23
9
1
1
1
1
1
1
2
0
0
0
1
1
1
1
1
1
2
0
0
1
3
3
3
6
1
6
6
1
6
1
2
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
4
7
0
7
1
1
1
1
1
1
1
1
1
1
4
4
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
13
0
0
0
0
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
4
1
1
1
2
1
2
5
1
1
0
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
2
4
4
1
0
1
1
1
1
1
1
1
1
1
1
4
4
4
1
4
4
4
2
1
1
1
1
1
4
4
1
4
4
4
1
1
1
1
4
1
1
1
4
4
1
4
1
1
1
4
4
1
0
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
2
5
2
1
0
0
2
1
5
1
1
1
1
0
0
2
1
5
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
4
1
1
1
2
2
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
5
8
1
1
1
2
2
1
1
1
2
0
0
0
0
1
1
1
1
1
1
1
2
1
5
2
1
1
1
1
1
1
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
29
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
2
0
1
1
1
1
2
0
1
1
0
1
1
1
1
1
2
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
2
1
1
1
1
0
1
1
1
1
1
2
2
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
2
2
2
1
1
1
1
1
1
1
0
1
0
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
1
2
1
1
1
1
1
1
1
1
1
1
1
1
5
5
1
2
0
1
1
2
1
2
0
0
2
1
1
1
1
1
1
1
1
1
0
1
2
1
0
1
1
1
1
1
1
5
1
4
4
4
4
1
1
1
1
4
1
1
2
1
1
1
1
1
4
2
0
6
0
1
1
0
1
2
1
1
1
1
1
1
4
0
1
1
1
4
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
4
4
1
2
1
5
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
4
2
1
1
2
1
1
1
1
1
1
5
1
1
2
2
1
1
1
2
2
1
1
1
1
1
1
2
2
1
1
1
1
1
1
4
4
2
0
0
1
1
5
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
1
1
1
1
1
1
1
1
5
0
0
0
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
1
1
1
2
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
2
0
0
2
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
2
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
12
1
1
1
1
1
1
1
1
5
0
0
0
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
6
1
6
2
0
0
1
1
6
1
6
1
6
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
2
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
4
4
4
1
1
1
1
1
1
2
0
2
1
1
1
1
1
1
1
0
1
1
1
0
1
2
1
4
4
4
1
1
4
1
1
1
1
4
1
1
4
4
4
4
1
4
4
4
1
1
1
1
4
1
4
1
0
1
0
1
1
1
1
1
1
1
1
1
1
2
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
4
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
3
3
0
2
1
1
1
1
1
1
2
2
0
1
1
1
2
0
1
1
1
1
1
1
1
1
2
1
1
2
0
0
1
1
2
0
0
1
1
0
1
1
1
1
2
0
0
1
1
1
1
1
1
1
1
1
1
0
6
0
1
2
1
1
1
2
1
1
0
0
1
0
3
3
3
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
0
0
2
1
2
2
2
1
1
1
1
1
1
1
0
1
0
2
1
1
2
1
1
1
1
1
1
1
1
0
0
0
0
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
0
0
0
1
1
1
1
1
1
4
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
4
0
1
1
1
2
1
1
1
1
1
1
1
1
1
0
1
2
2
1
1
1
1
1
1
1
1
1
1
4
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
5
0
0
0
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
22
5
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
8
2
13
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
2
0
0
1
1
1
1
1
6
1
0
1
6
1
0
1
1
1
1
1
1
1
6
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
0
1
0
1
0
1
1
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
2
0
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
13
1
2
0
1
2
5
1
0
0
1
1
1
1
1
1
1
1
1
7
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
5
13
0
0
0
1
1
1
1
1
1
4
4
4
4
4
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
0
1
0
0
4
4
4
4
1
1
1
1
1
1
2
13
1
1
1
0
1
5
0
0
1
1
0
0
4
1
1
1
1
1
1
0
1
1
4
0
1
4
0
1
1
1
13
5
0
0
5
1
1
1
1
1
1
4
4
1
1
1
1
1
0
1
1
1
1
1
1
1
1
4
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
2
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
4
1
3
3
3
2
0
0
1
1
0
1
1
0
1
1
1
1
1
1
2
1
1
1
0
2
1
1
2
2
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
3
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
0
2
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
2
1
5
1
0
0
2
1
1
1
2
1
1
2
1
1
1
1
1
1
2
4
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
2
2
2
1
1
2
1
1
1
2
2
1
1
1
1
1
1
2
2
0
0
0
0
0
0
0
5
0
0
1
1
0
0
0
1
1
1
1
1
1
1
2
1
0
1
1
1
1
1
1
1
0
2
1
2
1
1
1
2
1
1
0
0
1
0
3
3
3
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
5
0
0
2
2
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
0
0
2
0
1
1
0
0
1
0
17
0
1
1
0
1
0
13
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
2
2
1
1
1
1
1
1
1
1
1
1
9
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
0
5
0
0
0
5
0
0
0
8
8
1
1
1
1
1
1
1
1
1
1
5
0
0
0
2
2
0
8
4
1
4
6
1
1
2
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
5
2
1
2
2
1
1
0
2
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
5
1
1
1
1
1
1
5
1
2
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
2
0
1
2
1
1
1
1
1
1
5
1
1
1
4
4
4
1
0
2
5
1
1
1
1
1
1
1
1
1
1
1
4
1
1
4
1
4
1
1
1
2
1
0
1
1
4
1
1
1
1
1
1
2
1
0
2
1
1
4
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
4
1
3
3
3
2
0
0
1
1
1
1
1
1
4
4
1
4
2
1
1
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
2
0
1
0
2
5
1
1
1
1
1
1
1
2
1
2
0
1
2
1
1
1
1
1
1
2
2
1
1
1
1
1
1
4
2
0
0
2
1
1
1
1
1
1
2
2
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
5
2
1
1
1
1
0
0
1
1
1
1
3
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
2
1
1
1
1
1
1
1
4
1
1
2
13
0
0
1
1
1
2
1
1
4
1
1
1
1
1
1
1
1
1
1
5
0
0
0
0
2
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
2
1
0
1
0
1
1
0
1
1
1
1
1
1
1
2
1
2
1
2
0
0
1
0
0
1
1
1
0
5
1
1
1
1
1
2
2
1
1
1
1
5
0
0
0
1
1
1
0
1
1
1
1
0
0
0
8
8
1
1
1
1
1
1
1
1
2
1
1
1
1
1
0
4
1
1
0
0
8
1
0
0
1
0
1
1
1
1
1
1
4
4
8
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
0
5
1
0
0
1
0
1
1
1
1
1
0
8
1
1
1
1
1
1
1
1
6
2
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
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
2
0
0
1
1
1
1
1
2
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
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
2
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
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
2
1
1
1
1
1
1
1
1
0
1
5
1
1
4
4
1
1
4
4
4
4
4
2
0
0
1
1
4
1
4
1
1
4
1
4
1
1
1
0
1
1
4
1
4
1
4
1
0
5
0
1
1
1
1
1
1
4
0
1
1
1
1
1
1
4
2
1
1
2
1
1
1
0
1
1
4
1
1
1
1
1
1
1
1
0
0
1
3
3
3
1
0
5
0
2
2
1
4
0
1
1
1
1
1
1
1
1
1
1
1
1
0
13
0
0
4
4
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
2
0
0
1
1
1
1
2
1
1
2
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
5
0
0
1
1
1
1
1
1
4
1
0
0
1
1
1
1
4
1
1
4
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
0
0
1
1
0
3
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
4
1
1
1
1
2
1
1
1
1
1
1
0
0
0
2
1
0
1
1
0
1
17
1
1
1
1
1
0
0
0
2
1
0
1
1
0
1
0
1
0
1
1
6
1
1
1
1
1
0
1
1
1
0
8
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
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
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
5
1
0
2
1
0
1
1
1
1
1
1
0
1
1
3
3
3
1
1
1
0
1
1
3
3
3
1
1
0
2
1
1
1
1
1
1
2
2
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
2
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
2
1
2
1
0
0
1
5
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
0
0
0
1
1
0
1
1
0
1
0
1
1
1
2
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
4
2
0
0
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
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
2
2
2
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
1
1
2
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
2
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
4
1
2
1
0
2
0
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
4
1
1
1
1
2
1
1
2
1
1
1
1
4
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
3
0
0
0
1
0
1
1
4
1
1
1
1
1
1
1
1
1
2
1
2
0
1
1
1
1
1
1
1
1
0
1
2
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
2
0
1
1
0
1
1
0
2
0
1
0
1
1
1
2
1
1
2
1
0
0
1
0
0
1
1
1
5
1
0
2
0
1
1
2
1
1
2
1
0
0
1
0
0
1
1
1
5
1
0
2
0
1
1
2
1
1
1
0
2
1
1
2
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
2
1
2
2
0
0
0
9
9
9
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
2
1
5
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
5
2
1
2
1
1
2
1
1
1
1
4
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
5
1
0
0
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
23
8
8
8
2
2
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
2
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
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
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
5
1
1
1
1
1
1
1
1
1
1
0
2
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
2
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
2
0
1
1
1
1
1
1
0
1
1
1
2
1
1
2
1
1
1
2
1
1
1
5
5
0
0
2
1
1
1
1
0
1
1
1
1
1
1
1
2
1
1
1
1
0
1
1
1
1
2
1
5
1
1
2
1
1
1
1
1
0
1
0
1
1
1
1
1
1
2
4
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
4
4
1
1
1
1
1
1
1
1
0
1
1
2
1
1
1
1
2
1
1
1
0
1
1
1
1
1
1
1
4
4
1
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
2
4
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
4
1
0
1
1
1
1
1
1
0
1
0
1
1
0
2
1
1
1
1
1
0
1
1
2
1
1
1
1
4
1
2
1
0
1
0
1
1
1
1
4
1
1
1
0
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
4
1
0
2
1
1
1
2
1
1
1
1
0
2
1
2
1
2
1
2
2
1
1
4
1
1
1
1
4
1
1
1
1
1
1
1
2
1
0
1
0
2
1
1
1
1
1
1
0
1
2
1
2
1
1
1
1
1
1
4
1
1
1
2
1
1
1
2
1
1
1
1
5
1
1
1
1
1
1
2
1
0
1
1
1
1
1
1
1
1
2
2
1
2
5
1
1
1
1
1
2
1
1
1
1
1
1
0
1
1
1
1
1
2
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
2
1
1
1
1
1
1
1
3
3
3
1
1
1
1
0
1
1
1
2
1
0
2
3
1
1
1
1
1
1
2
2
0
1
1
1
1
1
1
2
4
1
1
1
1
1
1
1
1
1
1
1
1
1
2
4
2
2
1
1
1
1
2
0
1
2
1
1
1
1
2
2
4
1
0
0
1
1
1
1
1
1
0
1
2
2
5
0
0
0
0
0
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
1
0
0
1
0
5
0
0
0
0
0
0
0
0
0
28
28
0
0
28
0
0
28
0
0
28
0
0
28
0
0
28
0
0
28
0
0
28
0
0
0
0
1
1
1
0
5
0
0
0
1
0
1
0
5
0
0
0
0
5
0
0
0
1
0
5
0
0
1
1
1
1
0
5
0
0
0
1
0
1
0
5
0
0
0
5
0
0
0
5
0
0
0
0
0
28
0
0
0
0
28
28
0
0
0
0
28
28
0
0
0
0
28
28
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
2
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
2
0
1
1
2
1
1
1
1
1
1
1
1
1
2
1
1
1
1
2
0
1
0
0
1
5
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
0
1
1
1
1
1
1
0
0
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
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
1
5
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
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
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
4
1
0
1
1
1
0
1
1
2
1
1
2
1
2
1
0
2
1
1
1
1
1
1
4
0
2
1
1
1
1
5
1
1
0
2
1
1
0
0
1
2
1
0
1
1
1
2
1
1
1
1
2
0
1
1
1
5
1
1
2
5
0
0
0
0
1
1
1
1
1
1
2
2
0
0
0
1
1
0
0
2
1
1
1
0
1
1
1
0
2
0
1
1
1
1
0
1
1
1
0
0
0
1
2
5
0
0
0
0
2
2
2
1
1
1
1
5
1
1
5
1
2
2
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
2
2
1
1
2
2
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
1
1
1
1
5
6
1
1
1
1
1
1
1
1
2
2
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
8
8
1
2
2
2
1
1
1
2
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
8
1
1
1
1
1
1
1
1
1
1
0
2
0
8
1
1
2
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
6
1
0
1
6
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
2
0
1
0
0
1
1
1
1
1
1
6
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
2
1
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
0
1
1
1
1
5
1
1
1
1
1
0
1
1
1
1
1
1
1
2
1
2
2
1
1
1
2
1
1
2
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
4
4
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
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
0
0
0
1
1
0
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
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
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
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
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
0
1
1
2
1
2
1
1
2
5
0
0
1
1
1
1
2
1
1
1
2
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
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
0
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
0
1
2
1
1
0
0
1
0
1
2
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
4
4
1
1
2
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
2
1
1
1
1
1
0
1
1
2
1
1
1
1
4
1
1
2
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
4
1
1
2
1
1
2
1
2
2
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
2
1
0
0
0
2
2
0
4
0
4
0
0
0
1
0
1
0
1
1
1
1
1
4
1
1
1
1
1
0
1
2
1
1
1
0
1
1
0
1
1
4
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
2
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
4
2
0
1
1
2
0
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
4
1
0
0
1
1
2
1
2
1
1
1
1
1
1
0
1
1
4
1
1
1
1
1
0
5
1
0
1
1
1
0
1
1
1
1
1
4
4
4
4
4
4
0
1
1
4
1
1
1
1
2
1
0
1
0
2
1
1
1
1
1
1
1
4
1
2
1
1
0
1
1
1
1
1
1
0
0
1
1
2
1
1
1
1
1
2
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
2
2
0
2
4
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
13
0
1
0
6
6
4
4
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
2
1
0
2
5
0
0
1
0
1
1
1
1
1
1
1
2
1
1
2
1
1
1
0
2
2
1
1
0
1
1
1
1
1
1
1
1
1
0
2
0
0
1
1
1
1
1
1
1
5
0
0
0
3
1
1
3
4
0
1
3
3
3
1
1
1
1
1
2
1
1
1
2
0
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
3
0
1
1
0
1
1
1
1
1
1
2
1
4
1
1
1
1
1
4
1
3
1
2
1
1
1
2
1
1
0
0
0
1
1
1
1
1
3
1
1
2
0
0
1
2
5
5
1
0
1
2
1
1
1
1
1
1
2
1
0
1
1
1
1
1
1
1
0
1
2
1
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
4
2
2
1
1
2
1
1
2
2
1
2
1
1
0
1
1
0
0
1
0
3
1
1
1
1
1
2
2
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
2
2
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
28
0
5
2
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
3
1
1
1
2
0
1
1
1
1
9
1
1
9
1
2
1
1
0
1
9
1
1
0
0
1
1
2
1
1
0
1
1
1
1
2
2
1
2
5
1
1
2
1
1
2
1
1
1
2
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
2
1
1
1
1
1
2
0
1
1
2
1
1
0
0
1
1
1
2
0
0
1
1
2
1
1
1
1
1
2
1
1
1
6
1
1
1
1
1
1
1
1
1
1
0
0
0
0
2
1
2
1
1
1
2
1
2
2
1
1
1
1
0
1
0
0
2
2
0
1
1
1
1
1
1
1
0
0
1
1
1
1
2
1
1
1
0
0
1
0
1
1
2
1
2
1
2
1
1
1
1
1
5
0
0
2
1
0
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
16
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
5
1
1
1
1
1
1
1
2
1
2
1
0
2
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
2
1
2
1
1
1
1
1
1
1
2
1
2
1
1
1
2
1
1
2
1
0
2
2
1
2
1
1
1
2
2
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
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
0
0
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
2
1
0
2
1
1
1
1
1
1
4
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
27
2
1
1
1
1
1
1
2
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
13
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
5
0
0
0
1
1
1
2
2
1
1
0
1
0
1
2
1
0
1
2
1
2
1
1
1
1
1
1
1
5
1
1
1
1
1
2
2
2
2
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
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
0
1
1
1
1
1
1
1
0
1
0
0
1
1
2
2
2
2
1
1
1
1
0
2
0
1
0
0
1
1
1
1
1
2
1
9
1
9
1
1
1
1
1
1
1
0
9
2
0
2
0
1
0
1
1
0
1
1
1
0
0
0
5
1
2
1
1
1
1
1
1
5
5
2
1
1
0
0
2
2
1
1
1
2
1
1
1
1
1
25
1
1
1
1
1
0
1
1
2
0
1
1
0
1
0
1
1
1
1
1
1
1
1
6
0
0
0
13
1
0
0
0
1
1
17
17
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
17
2
5
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
2
1
1
1
2
1
1
0
0
1
1
1
1
1
1
1
0
13
0
0
0
1
1
2
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
2
1
4
4
1
2
1
1
0
1
2
1
2
1
0
2
4
4
1
1
1
1
1
1
0
1
1
1
2
1
1
1
1
1
1
2
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
2
1
2
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
9
9
9
1
0
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
9
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
12
1
1
1
1
1
1
2
2
2
0
1
1
1
2
1
1
1
1
1
1
2
0
1
1
1
1
0
0
1
0
0
8
8
8
8
0
5
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
6
1
6
1
6
1
6
1
1
1
1
1
0
1
1
5
0
0
0
2
1
1
1
1
1
1
2
2
2
1
1
1
5
1
5
1
1
1
1
5
1
1
1
2
0
5
1
0
0
0
2
0
0
0
1
1
8
8
2
1
2
1
1
1
1
1
1
0
1
3
3
5
1
0
1
2
1
1
1
1
0
1
0
1
8
8
0
2
1
1
1
1
5
1
1
2
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
8
1
5
2
1
1
1
1
1
0
0
1
1
2
1
1
1
1
1
1
4
1
1
2
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
2
8
2
2
1
1
1
2
1
2
1
1
1
1
1
4
2
0
0
1
2
1
2
1
1
5
1
1
1
1
1
1
2
1
1
0
1
2
0
0
0
6
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
5
0
0
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
0
0
0
1
1
2
1
1
1
4
1
1
1
1
2
1
2
1
0
1
1
1
0
2
1
1
1
1
0
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
2
1
1
1
1
1
5
5
1
1
1
1
1
1
1
2
2
0
0
2
1
0
1
1
1
0
0
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
5
1
1
1
1
1
1
1
1
1
1
1
5
1
1
1
1
1
1
5
5
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
2
1
1
2
1
1
2
1
0
0
0
1
1
1
1
1
2
1
1
1
1
2
1
1
2
0
1
5
5
0
1
1
0
2
1
1
0
1
1
1
2
0
2
1
1
1
1
1
2
1
1
1
1
0
1
2
0
1
1
1
1
1
1
1
2
0
0
1
1
1
0
0
1
2
1
0
1
2
1
1
1
1
1
0
2
5
1
1
1
1
1
0
0
2
2
1
1
0
1
0
1
1
2
2
1
1
0
1
2
1
1
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
0
1
1
0
2
5
1
1
0
2
1
2
1
1
2
0
2
1
2
1
1
1
1
0
0
1
1
1
0
0
2
1
1
2
1
1
2
1
0
0
0
1
1
1
2
1
1
2
1
1
1
1
2
1
1
2
0
1
5
5
0
1
1
0
2
1
1
0
1
1
1
2
0
2
1
1
1
1
1
1
1
1
1
2
1
1
1
1
0
1
2
0
1
1
1
1
1
1
1
0
0
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
2
1
2
2
1
1
2
1
2
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
5
0
0
0
0
1
1
1
1
1
1
2
1
1
1
0
0
2
6
1
1
1
1
1
1
1
1
2
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
2
1
2
1
1
2
1
2
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
2
1
0
1
2
1
1
2
1
1
0
2
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
2
1
1
1
1
1
1
1
1
2
2
1
1
1
1
0
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
0
1
1
1
1
1
2
3
1
1
1
1
1
2
0
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
0
1
1
2
1
1
2
1
1
1
1
1
1
1
2
1
1
1
0
0
1
0
1
1
1
3
1
1
0
1
2
1
2
1
1
2
0
0
1
1
1
1
2
1
1
1
0
1
1
1
1
1
1
1
2
1
1
1
1
1
1
5
1
1
0
1
2
0
0
1
1
1
2
0
1
2
5
1
1
1
2
1
2
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
2
1
0
2
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
1
0
0
1
1
1
1
1
2
1
2
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
2
1
1
2
1
0
1
1
1
1
1
2
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
5
1
1
1
2
2
1
1
1
1
1
1
1
1
1
2
1
1
1
1
2
1
1
2
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
2
1
1
1
1
1
1
1
0
0
1
1
1
2
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
4
1
1
1
1
1
1
0
1
0
1
0
2
1
1
1
1
1
1
1
1
4
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
1
1
4
2
1
2
1
1
1
2
1
2
0
2
1
0
1
1
0
1
1
1
1
1
0
0
2
1
4
1
0
2
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
4
1
2
1
1
1
1
1
1
1
1
4
4
1
1
1
2
1
1
1
1
1
1
0
1
1
1
1
1
1
1
2
2
2
1
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
2
1
2
2
1
1
1
1
4
2
5
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
4
4
1
1
1
1
1
0
1
1
0
2
2
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
2
0
2
0
1
1
1
1
1
1
1
1
1
4
0
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
4
4
1
2
2
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
4
4
4
0
0
4
4
1
1
2
1
1
1
1
1
0
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
4
2
1
2
1
1
1
2
1
1
4
1
1
1
1
1
1
1
1
1
1
4
2
1
1
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
4
4
2
1
2
2
1
0
1
1
1
4
1
1
1
1
4
4
2
1
1
1
2
1
1
1
2
1
1
1
1
4
4
4
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
4
1
1
5
2
1
1
1
1
0
0
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
4
4
2
2
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
2
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
2
2
1
1
1
2
0
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
4
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
2
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
0
1
1
1
1
1
1
0
2
1
0
0
1
1
1
1
1
1
1
1
1
4
1
2
1
1
1
1
1
1
1
1
0
1
0
1
4
1
1
1
2
1
2
1
1
1
1
1
2
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
4
4
1
1
1
1
1
1
2
1
0
2
1
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
2
2
0
1
2
1
1
0
1
1
5
1
0
1
0
1
0
1
1
0
0
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
0
1
0
0
0
0
0
2
1
1
0
1
1
1
1
4
1
0
1
0
2
2
1
1
1
4
1
1
0
1
1
1
5
1
0
0
0
1
1
2
4
1
1
0
1
1
2
1
1
1
1
1
1
4
1
1
1
1
1
2
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
4
1
0
1
1
2
1
1
1
1
1
1
4
1
1
1
1
1
1
2
1
1
1
0
1
1
1
1
1
1
1
2
2
1
4
2
1
1
1
1
1
2
1
2
2
2
1
0
1
1
1
1
1
2
1
0
1
2
1
0
1
1
1
1
1
1
1
1
0
2
1
0
1
1
0
2
1
0
1
1
1
1
2
1
1
1
1
1
1
2
1
0
1
1
1
2
1
2
1
2
1
0
1
1
1
1
0
2
0
1
1
1
1
1
2
1
1
2
0
0
4
1
1
1
1
1
1
1
1
1
2
1
0
1
1
0
1
2
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
4
1
1
2
2
1
0
1
1
0
2
2
1
1
1
1
1
1
4
4
0
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
0
4
1
1
1
1
1
1
1
1
1
0
1
1
2
1
1
1
0
1
1
1
0
1
1
5
2
1
0
0
0
1
1
0
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
2
1
1
1
1
1
4
1
1
1
1
1
1
1
1
0
1
1
2
1
1
0
1
1
1
1
0
1
1
4
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
2
1
1
4
1
1
1
1
1
1
1
0
1
2
0
1
0
0
1
1
1
4
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
4
4
13
1
1
0
1
1
1
1
5
0
0
4
4
4
1
1
4
1
1
1
1
1
1
1
0
2
1
5
1
1
2
1
0
1
1
2
1
1
0
2
1
1
1
1
0
2
1
1
0
1
0
1
1
1
0
1
1
1
1
4
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
0
1
1
0
0
1
1
1
1
1
1
4
1
2
1
0
1
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
4
1
2
1
0
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
2
4
4
4
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
2
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
2
1
1
1
0
1
2
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
0
1
0
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
1
2
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
2
1
1
1
1
1
5
1
1
1
1
1
1
1
2
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
2
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
1
1
5
0
0
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
0
1
0
2
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
2
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
2
1
0
1
1
1
0
0
0
0
4
1
1
1
1
1
1
1
0
1
1
1
1
2
1
1
1
1
1
1
1
0
0
1
1
1
2
1
2
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
2
1
1
2
1
1
1
2
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
2
1
1
1
1
1
1
1
1
1
2
1
1
1
5
0
0
2
1
1
1
0
1
2
1
0
1
2
1
0
1
1
1
1
1
1
1
1
1
0
2
1
0
2
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
1
1
1
1
0
1
1
0
1
1
1
5
1
0
0
0
1
1
2
4
1
1
0
1
1
2
1
1
1
1
1
1
13
0
0
0
3
1
1
1
1
1
1
1
0
1
1
1
2
1
1
1
1
1
1
0
1
1
1
1
3
1
1
1
1
1
1
1
1
2
1
0
2
1
1
2
1
1
1
1
0
1
1
1
1
3
1
1
1
1
1
0
1
1
6
1
1
1
1
0
1
1
2
1
1
1
1
0
1
1
1
1
3
1
1
1
1
1
1
0
1
1
1
1
1
1
2
1
0
2
1
1
1
1
1
1
4
0
2
1
1
1
1
1
4
1
3
3
3
3
3
1
1
9
1
2
1
9
1
1
1
1
0
0
1
1
1
9
2
1
1
1
1
1
1
0
1
1
1
1
0
1
1
9
9
1
1
9
1
0
0
1
1
1
2
1
1
0
1
1
1
1
2
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
2
1
1
2
2
1
2
1
1
2
1
2
1
2
2
1
1
1
1
1
1
1
2
2
1
0
1
1
1
2
1
1
1
1
1
2
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
2
1
0
1
2
1
1
2
1
2
1
1
1
1
1
2
1
5
5
2
2
2
1
2
5
1
1
1
1
1
5
1
0
1
0
0
0
0
0
2
0
1
0
1
1
1
0
1
2
1
1
1
1
1
1
2
0
2
0
0
1
1
1
1
1
0
1
2
5
1
1
1
1
0
1
1
2
1
1
2
1
1
1
1
1
1
1
0
2
1
1
0
1
2
5
1
1
1
1
0
1
1
2
1
1
1
1
1
1
0
0
2
0
0
1
1
1
1
5
0
0
0
4
0
1
0
1
1
0
1
1
1
1
1
5
0
2
1
1
0
2
1
1
1
1
1
2
0
1
0
1
1
1
1
1
1
4
1
1
1
1
1
1
2
1
0
1
1
2
1
1
1
3
1
1
1
1
3
2
2
1
2
0
1
1
1
1
1
0
1
2
2
1
0
1
0
2
0
1
1
1
1
2
1
1
1
1
1
1
1
0
1
0
1
1
1
1
2
1
1
2
1
1
1
1
2
1
1
1
1
0
5
0
1
1
1
1
1
1
2
1
1
1
1
1
1
2
2
1
1
2
1
1
2
2
1
2
1
1
0
1
1
0
0
1
0
3
2
1
1
2
1
1
2
2
1
2
1
1
0
1
1
0
0
1
0
2
1
1
2
1
1
1
2
0
2
1
1
2
1
1
0
1
5
1
0
0
0
2
1
1
1
1
1
1
1
5
2
0
0
4
2
1
1
1
1
1
0
1
0
0
5
1
2
5
1
1
1
2
1
1
1
0
0
0
0
2
1
4
1
1
1
1
1
1
1
1
2
1
2
1
1
1
2
1
1
2
1
2
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
2
1
0
1
0
1
0
1
0
1
0
1
0
1
1
2
1
1
0
1
1
1
1
2
2
1
2
5
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
2
1
0
1
2
1
1
2
1
1
1
1
1
2
1
0
1
1
1
2
1
2
2
2
1
1
1
1
0
0
2
0
1
1
1
1
1
1
1
1
2
2
1
1
2
1
1
1
2
1
1
0
0
1
2
1
0
1
0
2
1
1
1
1
1
0
2
1
1
0
1
1
1
1
1
1
0
2
1
0
1
2
5
1
1
1
2
1
1
0
1
2
1
1
1
1
0
2
1
1
1
0
2
1
1
1
1
1
1
0
1
2
1
1
1
1
1
1
1
0
1
2
1
0
2
0
0
1
1
1
1
1
0
1
2
2
1
1
1
1
1
1
0
2
1
0
1
0
1
2
1
1
1
1
0
1
2
1
1
1
0
1
1
1
1
1
2
1
2
0
0
2
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
0
1
2
1
1
1
1
1
1
1
1
2
1
1
1
0
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
2
0
2
1
1
0
1
1
0
2
1
1
0
1
1
0
0
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
2
1
1
0
0
0
2
0
2
1
1
1
1
1
1
0
1
0
1
1
1
0
0
2
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
2
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
2
1
1
1
0
1
1
1
1
1
4
1
1
1
1
1
1
1
2
1
1
1
1
0
0
0
0
1
26
1
1
1
2
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
2
0
1
1
1
1
1
1
1
0
0
1
0
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
5
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
2
1
1
1
1
1
2
1
2
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
2
1
1
1
1
5
1
0
1
1
0
0
2
0
1
1
5
1
5
1
2
2
1
2
1
2
2
2
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
2
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
2
1
1
2
1
2
1
1
2
1
1
2
1
1
1
1
0
0
1
0
0
1
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
2
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
2
2
2
1
2
1
1
1
1
1
1
2
1
1
0
0
0
1
1
1
1
1
2
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
2
2
2
2
1
2
1
1
1
1
1
0
1
1
1
1
1
1
0
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
0
1
0
1
0
1
2
1
1
1
1
1
1
1
0
0
5
1
1
2
1
1
1
0
2
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
0
2
0
1
1
2
1
0
2
2
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
2
2
1
1
1
1
1
1
1
0
1
1
1
1
1
2
2
1
2
2
1
1
0
0
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
2
1
0
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
0
2
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
2
1
0
1
1
1
1
1
1
0
1
1
1
0
2
1
1
1
0
2
1
1
1
1
1
1
1
1
0
2
5
0
0
1
1
1
1
0
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
2
1
0
2
1
1
1
0
1
0
2
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
2
1
1
1
1
1
1
1
0
1
0
1
1
13
0
0
0
0
13
0
0
0
0
13
0
0
0
0
1
1
1
1
1
0
1
1
1
2
1
1
1
1
1
1
1
0
1
0
1
1
2
13
1
0
1
1
2
1
1
1
4
1
4
0
0
0
0
5
0
1
1
1
1
1
1
2
2
1
2
1
1
1
2
1
1
1
1
5
5
2
2
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
5
0
0
0
5
0
0
0
1
1
2
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
2
1
1
2
1
1
1
2
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
0
1
1
2
0
1
1
2
0
1
1
2
0
1
0
1
0
2
1
1
0
1
2
1
2
1
1
0
1
2
1
0
1
2
1
1
1
1
0
1
1
2
0
1
1
1
1
1
1
1
0
5
0
0
0
1
2
1
1
1
1
1
1
1
1
1
1
5
0
0
0
0
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
0
0
1
1
1
4
1
1
5
1
1
5
0
0
0
0
1
2
2
2
1
2
2
2
1
1
1
1
5
0
0
0
0
1
1
1
1
1
0
1
1
2
1
1
1
3
5
1
0
1
0
0
4
4
0
1
1
1
1
1
5
1
1
2
1
0
0
1
1
1
0
1
2
1
1
1
1
1
2
1
1
1
1
1
5
1
1
1
0
0
2
1
1
0
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
5
1
2
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
5
1
2
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
2
1
2
1
1
1
1
2
5
0
0
1
1
1
1
1
1
1
4
1
1
1
1
1
1
4
4
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
3
3
1
3
3
3
3
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
0
1
1
1
1
21
0
0
0
1
1
1
1
2
1
1
1
1
0
0
0
1
1
1
1
1
1
5
0
0
0
1
1
0
1
0
1
1
1
0
1
2
1
1
1
1
1
0
1
1
0
1
1
1
1
0
2
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
2
1
1
1
1
0
1
1
0
1
1
1
1
1
4
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
2
1
1
2
1
2
1
2
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
2
1
1
1
1
1
9
1
9
1
0
1
1
1
1
0
0
9
2
0
2
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
2
1
1
1
1
1
1
1
1
1
2
2
2
0
0
0
1
1
0
0
2
2
1
1
0
0
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
0
5
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
5
2
1
1
0
1
1
2
1
1
2
1
5
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
31
1
0
1
0
1
0
1
0
1
0
1
0
0
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
6
6
1
1
1
1
1
1
1
1
1
1
2
2
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
6
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
2
2
1
1
1
1
2
1
1
0
1
0
1
0
1
0
1
1
1
1
1
6
6
6
6
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
2
0
1
1
1
1
1
6
1
1
1
1
1
1
1
2
1
1
1
1
1
2
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
6
6
1
1
0
1
1
1
1
1
1
2
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
2
1
1
1
1
0
1
6
1
1
1
1
1
1
1
1
0
0
1
1
2
1
1
1
1
1
1
1
1
1
0
1
1
1
1
6
1
1
2
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
6
1
2
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
6
6
1
1
1
1
2
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
6
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
0
1
1
2
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
6
17
1
1
0
1
13
0
0
0
0
0
17
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
17
1
2
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
2
1
2
2
1
2
1
2
1
1
1
1
0
1
1
1
0
1
2
0
2
0
0
1
1
1
1
1
0
0
1
1
17
0
0
0
0
0
1
2
1
1
1
5
1
1
1
1
1
1
1
0
0
1
1
0
1
1
5
1
0
1
1
1
1
1
1
17
1
2
1
1
1
5
1
1
1
1
1
1
1
0
0
1
1
0
1
1
5
1
0
1
1
1
1
1
1
17
1
1
1
5
0
0
0
2
1
0
1
1
1
1
5
0
0
0
2
1
0
1
4
1
2
1
1
1
1
2
1
1
1
1
4
1
1
4
1
1
1
4
4
4
2
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
1
1
1
1
1
0
4
4
1
1
0
0
1
1
1
2
1
1
1
4
1
2
0
0
2
1
1
1
1
1
1
4
1
0
1
0
1
1
1
2
1
1
1
4
1
5
1
1
1
1
2
1
0
0
4
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
4
2
1
2
1
1
1
5
1
1
2
1
2
1
1
1
0
1
1
4
4
0
4
1
1
2
1
5
1
1
1
0
1
0
0
1
2
2
1
2
1
1
5
1
1
0
2
2
0
1
1
1
1
1
1
4
0
1
1
1
1
1
1
1
2
1
1
1
1
1
0
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
4
4
2
1
1
1
7
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
2
0
2
1
4
2
13
0
1
1
2
1
1
5
1
1
2
1
1
0
0
0
2
1
1
1
1
4
2
13
13
0
1
1
2
1
1
5
1
1
2
1
1
0
0
0
0
0
0
2
1
1
1
1
4
1
1
1
1
2
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
4
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
2
4
27
4
2
1
1
1
1
2
2
0
0
0
0
1
1
1
1
1
1
0
0
0
0
32
8
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
9
9
1
2
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
9
1
0
0
1
1
1
1
12
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
12
5
2
1
0
1
1
0
0
0
1
12
12
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
8
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
2
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
2
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
2
5
0
0
0
0
1
5
0
0
0
8
8
8
8
8
8
0
1
0
13
0
0
0
8
8
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
5
0
0
1
1
1
5
0
0
0
8
8
13
0
0
0
13
0
0
0
1
1
0
8
8
8
8
0
13
0
0
1
4
4
13
0
0
0
1
1
1
1
1
1
5
1
13
13
4
0
0
0
0
0
0
8
8
2
1
1
1
5
1
1
2
2
1
1
1
5
1
1
2
0
0
0
1
0
0
1
0
0
0
0
2
2
0
8
8
1
1
1
5
1
0
0
14
0
0
0
8
8
32
1
1
1
2
1
1
2
2
2
2
2
0
8
8
0
0
8
8
2
1
1
1
1
5
1
1
2
1
1
1
1
0
5
0
1
1
1
0
0
0
0
1
1
8
8
0
5
0
1
2
1
1
1
1
1
1
5
0
0
1
1
1
1
2
1
5
0
0
1
1
8
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
8
8
1
2
1
1
1
1
5
1
0
1
1
0
0
2
0
1
0
1
1
0
1
5
1
1
1
1
1
2
1
2
1
1
1
5
2
1
1
1
1
1
1
1
0
5
0
1
0
1
0
0
0
1
1
2
0
1
8
2
1
1
1
1
2
5
2
2
1
2
1
5
2
2
2
1
1
1
1
1
1
0
5
1
0
0
0
8
1
1
1
0
0
8
1
0
0
1
1
1
8
8
2
1
0
1
1
1
2
1
1
1
2
1
5
1
1
2
1
0
1
1
1
1
1
1
1
5
0
0
0
1
0
1
0
0
1
1
1
1
5
0
0
0
8
1
5
0
0
0
1
5
8
2
1
1
1
1
1
1
1
1
2
1
5
0
0
0
1
1
2
1
1
0
8
5
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
8
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
5
0
0
0
8
2
1
1
1
1
1
1
1
0
0
4
4
1
1
1
1
1
1
1
8
4
2
1
2
1
0
0
1
2
4
0
8
8
1
2
1
1
1
1
2
2
2
2
5
1
2
1
5
2
1
1
0
1
1
0
0
0
1
0
5
1
1
1
1
2
1
1
1
1
1
2
2
1
2
0
1
0
1
1
5
0
0
0
8
2
1
1
1
1
1
1
2
2
1
5
1
1
1
5
1
1
2
0
1
1
0
0
0
0
2
0
0
1
1
8
2
1
1
1
1
1
1
2
2
1
1
1
5
1
5
1
2
0
0
0
2
1
0
0
1
8
0
8
0
5
0
0
1
1
5
1
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
5
0
0
0
8
0
0
0
0
0
0
8
1
1
1
1
1
1
0
1
0
1
1
1
1
5
2
1
0
0
1
1
1
1
1
1
0
2
1
1
0
0
2
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
2
1
0
1
4
4
1
1
8
8
2
1
1
1
2
1
5
1
1
2
1
1
2
1
1
2
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
0
0
0
1
0
0
1
1
5
1
1
1
1
1
2
8
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
8
5
1
2
1
1
1
1
1
1
1
1
1
1
2
0
0
8
1
1
1
2
2
1
5
0
0
1
1
1
1
1
1
1
1
8
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
5
8
0
1
1
1
1
1
1
2
1
0
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
0
0
1
1
8
2
2
1
1
1
2
1
2
1
1
1
1
1
4
2
0
0
1
2
0
0
1
1
0
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
2
0
0
1
1
1
1
2
1
0
1
2
1
1
1
1
1
1
1
5
2
2
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
0
1
0
0
1
1
2
1
1
1
1
1
1
0
0
1
1
1
0
0
5
1
1
1
2
2
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
13
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
0
0
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
19
1
1
0
1
0
1
1
1
1
1
1
1
1
1
2
1
1
1
0
1
6
1
1
0
1
0
1
1
1
1
1
1
1
1
1
2
1
1
1
0
1
6
6
0
0
0
1
1
1
1
1
0
1
1
2
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
2
0
1
1
0
1
0
1
1
1
1
1
1
1
0
6
1
1
1
1
1
0
1
1
2
0
1
1
0
1
0
1
1
1
1
1
1
1
6
6
1
1
2
1
1
1
1
1
0
1
1
6
1
1
1
1
1
1
1
2
1
1
1
1
0
5
0
0
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
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
2
1
1
1
2
1
1
3
1
1
1
1
3
3
1
0
1
1
2
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
2
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
1
1
5
1
0
0
0
0
0
0
1
2
1
1
1
0
1
1
0
0
1
1
1
0
1
1
2
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
13
0
0
0
1
1
2
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
2
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
2
1
1
1
1
0
1
0
0
2
0
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
1
1
1
1
0
1
1
1
1
1
2
2
1
2
1
2
2
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
2
1
1
1
1
1
2
1
5
1
1
1
1
1
1
1
1
1
1
1
1
4
1
2
1
1
1
1
2
1
1
2
1
4
1
2
2
1
2
2
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
5
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
0
1
1
1
1
1
1
0
2
2
2
2
1
1
1
1
1
1
2
1
5
5
1
2
1
1
1
1
1
1
5
5
1
1
1
1
1
1
13
2
13
2
13
2
2
2
1
1
0
1
1
1
1
2
2
1
1
1
1
2
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
2
5
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
2
1
1
1
1
1
1
0
1
0
2
1
1
1
1
0
2
1
1
2
1
1
0
2
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
2
1
1
0
1
0
1
0
1
0
0
1
2
0
1
1
1
1
2
1
1
1
0
1
1
2
0
0
1
3
1
1
1
1
1
1
1
2
2
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
2
1
1
1
1
2
1
1
1
1
0
1
1
1
2
1
1
0
1
2
1
1
1
1
0
1
1
2
1
1
1
1
1
1
0
1
1
0
2
1
0
1
0
1
1
2
1
1
2
1
1
1
1
1
1
1
0
1
1
2
1
2
1
2
1
1
0
1
2
1
1
1
0
1
0
1
2
1
1
1
2
1
1
1
1
2
0
2
1
2
2
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
2
1
1
2
1
1
1
2
0
1
0
1
1
2
1
1
1
1
2
0
0
1
2
1
0
1
2
1
1
2
1
1
1
1
1
2
0
0
1
1
1
1
1
1
1
1
2
0
0
0
1
1
1
1
1
1
1
2
0
1
1
1
1
1
1
2
0
1
1
1
1
1
1
1
2
2
0
1
2
2
2
1
0
2
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
2
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
2
1
1
1
1
1
2
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
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
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
2
1
1
1
1
5
1
2
1
1
1
1
0
1
0
0
0
1
0
0
1
2
1
1
1
1
1
1
1
1
1
1
2
1
2
2
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
2
1
1
2
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
5
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
0
0
0
1
1
1
1
1
1
2
1
1
1
1
1
0
1
1
1
1
1
2
1
1
1
1
1
1
1
1
0
1
0
2
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
2
1
1
1
2
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
3
3
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
2
1
1
1
1
1
2
1
1
3
1
1
1
1
3
2
2
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
2
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
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
0
0
1
1
1
1
1
1
1
1
1
0
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
0
2
0
1
1
1
2
1
1
1
2
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
2
0
0
1
1
1
2
1
1
1
0
1
1
2
2
1
2
0
1
1
1
1
1
1
1
1
1
1
1
1
2
0
2
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
2
2
2
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
2
2
2
1
1
0
2
1
1
1
1
0
2
1
1
1
0
1
2
1
0
0
1
1
1
1
1
1
1
1
2
1
0
2
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
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
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
2
5
1
1
1
1
1
1
0
0
0
1
1
1
2
0
1
1
1
1
1
1
1
1
1
1
2
0
1
1
1
2
1
1
3
1
1
1
1
2
1
0
1
2
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
2
1
0
2
1
1
0
1
1
1
1
1
1
1
1
1
0
2
1
0
2
1
1
1
1
1
1
1
0
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
2
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
2
1
2
1
1
1
0
0
1
1
1
0
1
1
2
2
2
1
0
2
1
2
1
1
1
0
0
1
1
1
0
1
1
2
2
2
1
0
2
1
2
1
1
1
1
0
1
0
1
0
1
1
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
5
0
0
0
0
1
5
0
0
0
0
1
2
1
2
1
1
1
1
1
1
0
0
0
0
0
2
1
1
1
1
1
1
1
1
0
1
1
0
1
0
2
1
1
5
2
1
1
1
1
1
1
2
2
1
0
0
0
1
0
0
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
5
0
0
2
1
0
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
2
1
1
1
0
1
1
1
1
1
1
1
2
1
1
1
2
1
1
0
1
1
1
1
1
2
1
3
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
2
1
2
5
1
1
1
1
1
1
1
1
2
1
0
0
0
0
1
2
2
1
1
1
1
2
1
1
2
1
1
2
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
2
1
0
1
2
2
1
1
1
1
1
2
2
2
1
1
1
1
1
1
1
3
0
5
0
1
1
1
1
1
1
2
2
1
1
1
2
0
1
1
1
1
1
1
2
5
0
0
1
1
1
1
2
1
1
2
0
1
1
1
1
1
1
2
1
1
0
5
2
1
1
1
1
0
2
0
0
1
1
1
1
1
1
1
1
2
1
0
1
2
1
1
1
1
1
1
1
1
2
2
5
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
2
5
0
0
1
1
1
1
2
1
1
1
2
2
1
1
5
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
5
1
1
0
1
2
0
0
1
1
1
2
0
1
2
5
1
1
1
1
1
1
1
0
2
1
0
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
2
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
2
1
2
1
1
1
2
1
1
0
0
1
1
1
1
2
1
0
1
1
1
1
1
1
1
2
1
1
1
1
1
0
2
1
5
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
2
0
0
1
1
1
1
2
1
1
1
13
1
1
2
0
1
1
1
0
2
0
2
2
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
2
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
2
5
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
2
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
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
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
2
1
1
1
13
0
0
1
1
1
1
1
1
1
1
1
1
2
1
1
0
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
1
2
1
2
2
1
1
1
2
1
1
1
1
1
2
1
0
1
1
0
1
1
1
1
0
1
4
4
1
1
1
1
1
0
1
0
2
0
1
6
1
1
1
1
2
1
1
1
1
1
1
5
1
1
1
1
1
1
2
0
0
1
0
1
2
1
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
2
2
1
1
1
1
0
1
1
5
13
5
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
5
5
5
5
0
0
1
1
1
1
1
1
0
1
1
1
1
2
1
1
2
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
2
1
1
2
1
1
1
1
0
1
1
1
1
1
1
1
2
1
1
1
1
1
2
5
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
4
1
0
0
1
1
1
1
1
1
0
13
5
0
1
1
0
1
1
0
2
0
1
1
1
1
0
1
2
2
1
1
1
2
1
1
0
1
1
0
1
0
4
1
1
1
1
1
1
1
2
4
2
1
1
1
1
1
1
1
1
1
1
4
4
1
1
2
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
2
1
1
1
1
0
0
4
0
1
1
0
1
1
1
1
1
1
1
1
2
1
1
2
4
4
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
2
4
1
1
1
1
1
0
1
1
1
1
2
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
4
2
1
1
0
0
1
0
1
2
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
4
2
1
1
1
1
5
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
2
1
2
1
1
1
1
1
1
4
1
1
1
1
0
2
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
4
2
1
1
1
1
1
0
2
0
1
1
1
1
1
0
1
1
1
1
1
1
4
1
1
1
2
1
1
1
1
0
1
0
1
1
1
1
1
1
4
1
1
2
2
2
2
1
1
1
1
1
0
0
1
2
2
0
1
0
1
1
1
1
4
1
1
1
1
2
1
1
0
0
0
2
1
1
1
1
1
0
1
1
1
1
1
1
1
4
1
1
2
1
1
2
1
1
1
1
1
1
1
1
1
4
1
2
2
1
1
1
1
0
1
0
1
1
1
1
1
1
1
4
4
1
1
1
2
1
1
1
1
1
1
0
1
1
1
1
1
1
1
4
1
1
1
2
2
1
1
1
1
1
1
1
2
1
1
1
0
1
0
1
1
1
1
1
1
4
2
1
1
2
1
1
1
2
1
1
1
5
5
0
0
2
1
1
1
1
0
1
1
1
1
1
4
4
1
1
2
1
1
1
1
1
1
1
1
1
0
1
2
1
1
0
1
1
0
2
1
1
2
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
4
1
2
1
1
0
1
1
0
2
1
1
2
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
4
4
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
0
1
1
2
1
1
2
1
1
0
0
2
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
4
4
1
0
2
0
1
1
2
1
1
1
1
1
1
0
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
0
0
1
1
2
1
1
1
1
4
1
1
2
2
1
1
2
2
1
1
0
0
1
1
1
1
2
1
0
1
1
1
1
1
1
1
1
1
4
4
1
1
5
1
1
1
1
2
2
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
4
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
2
2
0
0
1
1
1
4
4
2
2
0
0
1
1
1
1
1
1
1
1
1
1
4
4
1
1
1
1
1
2
1
1
1
2
1
1
1
0
2
1
1
1
1
1
1
1
1
1
2
4
4
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
4
1
1
1
1
1
2
0
1
4
0
1
2
1
1
1
1
1
1
4
4
1
1
1
1
2
1
0
1
4
1
1
1
1
1
1
1
1
1
1
1
2
1
2
2
1
2
2
1
1
1
1
4
1
1
4
1
0
0
1
1
1
2
0
4
1
1
1
1
1
1
1
1
4
2
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
2
1
1
2
1
1
1
1
0
4
4
1
1
1
1
1
2
4
1
2
0
1
1
2
4
1
1
1
1
2
1
2
1
4
1
1
1
1
4
1
1
1
4
2
1
1
1
1
2
1
2
1
1
2
1
1
4
4
4
1
0
2
1
0
1
1
1
1
1
1
1
1
1
1
1
1
4
1
0
1
1
1
2
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
4
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
2
1
1
4
1
1
1
1
1
1
2
1
1
1
1
1
4
1
1
1
2
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
2
1
1
2
1
1
1
1
3
1
1
1
0
1
1
2
1
1
5
1
1
1
0
0
4
1
1
1
1
2
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
4
1
1
1
1
1
1
1
2
1
1
0
0
0
1
0
1
1
1
1
1
1
1
4
4
1
2
1
1
1
1
1
1
1
1
1
2
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
4
1
1
1
1
2
1
0
1
1
1
1
2
0
0
1
0
1
1
4
1
1
1
1
0
1
1
1
1
1
1
1
2
1
1
1
1
1
0
0
1
4
1
1
1
1
1
1
2
1
1
1
1
2
0
1
4
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
2
1
1
1
1
4
4
1
0
1
1
0
1
1
1
1
1
0
2
1
1
1
2
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
4
1
2
2
1
1
1
2
1
2
0
0
2
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
5
1
0
0
0
1
1
2
4
1
1
0
1
1
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
3
3
3
1
2
1
1
1
1
1
1
1
4
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
2
0
0
1
4
1
0
0
1
2
1
1
1
1
1
5
1
1
1
1
1
1
1
1
1
1
1
1
1
3
0
4
2
1
2
2
1
1
1
2
4
2
1
1
1
1
0
1
2
1
2
2
2
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
2
0
1
0
1
1
1
0
1
1
1
2
0
1
1
1
1
1
1
0
2
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
0
1
0
0
0
0
0
2
1
0
1
1
1
1
0
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
0
1
1
0
0
0
0
0
2
1
0
1
1
1
1
4
1
1
1
1
1
1
1
2
1
3
3
3
1
1
2
4
0
1
1
1
4
1
1
0
1
1
0
1
2
2
1
1
1
1
1
1
1
1
4
2
1
1
1
2
1
1
2
2
2
5
1
2
1
2
1
1
5
1
5
1
1
1
1
0
1
0
0
2
1
2
0
1
1
4
1
1
5
5
1
1
1
0
0
1
1
2
1
5
1
2
0
0
1
4
0
4
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
2
1
1
1
1
1
0
0
2
5
1
1
1
1
0
0
4
0
1
1
1
1
1
1
2
1
1
1
0
1
0
0
1
1
1
0
1
3
2
1
1
1
1
2
1
1
1
4
0
1
1
1
1
1
1
1
1
2
1
0
1
4
1
1
1
2
1
0
1
1
1
1
1
0
4
1
1
1
1
1
0
1
1
1
0
2
1
0
1
1
1
1
2
1
1
1
1
0
0
0
5
1
4
1
1
1
2
0
1
1
1
1
1
1
4
1
1
0
1
1
1
0
2
0
0
1
0
4
1
1
1
2
0
0
2
1
1
1
2
1
1
1
1
1
1
1
1
1
4
4
1
1
1
4
1
1
1
0
1
1
2
1
1
1
1
1
1
1
1
1
2
1
2
0
1
1
1
1
1
1
1
1
1
1
4
4
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
0
0
1
2
0
2
1
1
0
1
1
1
2
1
1
1
1
1
1
4
1
1
5
2
1
1
1
1
0
0
1
0
2
1
1
1
1
1
1
4
1
2
1
0
1
1
2
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
0
0
2
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
4
2
2
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
4
1
1
2
1
1
2
1
2
2
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
2
1
0
0
0
2
2
0
4
0
4
0
0
0
1
0
1
0
1
1
1
1
1
4
4
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
0
2
0
3
0
1
1
1
1
4
1
1
2
1
1
1
1
1
2
1
1
1
1
0
2
0
3
3
1
1
1
0
1
1
1
4
1
1
2
1
1
1
1
1
2
1
1
1
1
0
2
0
3
3
1
1
1
0
1
1
1
4
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
2
1
0
1
0
4
0
1
0
1
1
2
1
1
2
1
1
1
1
0
1
1
1
1
4
1
1
0
0
1
1
1
2
2
1
1
1
0
0
2
1
1
1
0
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
0
0
1
1
1
0
1
1
1
5
5
1
1
1
0
0
4
1
1
1
0
1
1
1
1
2
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
2
1
5
1
0
1
1
1
1
1
1
4
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
2
1
1
0
1
1
4
1
5
0
0
1
1
1
1
0
1
1
1
0
2
1
1
2
1
1
1
1
1
0
1
1
1
0
1
0
1
2
2
1
0
1
4
4
1
1
1
1
1
1
5
1
0
0
4
1
1
1
2
1
1
1
0
1
1
1
2
5
1
0
0
1
1
4
5
1
2
1
1
1
1
1
2
1
0
0
4
1
1
1
1
2
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
2
1
2
1
1
1
0
0
1
4
1
2
1
1
1
0
1
1
1
1
0
1
1
4
1
2
1
1
1
0
1
1
1
1
0
1
1
4
2
1
1
0
1
1
1
1
1
1
0
4
1
1
1
2
1
4
0
1
1
1
1
1
1
1
4
1
1
2
1
1
0
1
1
1
1
1
1
0
4
2
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
4
2
1
1
1
1
2
1
1
1
1
0
0
1
0
1
1
1
4
1
1
1
1
1
0
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
0
0
4
0
1
1
2
1
1
1
2
1
2
1
1
1
1
4
4
4
2
1
5
1
1
1
1
2
1
2
0
0
1
1
1
1
1
1
1
4
1
0
1
4
1
1
1
1
0
0
1
1
4
4
1
1
1
1
1
1
1
1
1
3
3
3
3
1
1
4
4
4
2
0
1
2
0
1
1
0
4
4
4
0
1
0
1
1
1
1
4
4
4
1
1
0
0
0
1
0
1
4
4
4
1
1
1
1
4
1
1
4
4
4
4
4
1
1
1
1
1
1
2
1
1
2
1
1
1
0
0
1
1
1
1
1
1
1
1
1
4
4
2
2
1
1
2
1
1
1
1
1
1
4
1
2
1
2
1
1
0
1
1
1
2
0
0
1
1
1
1
1
1
4
1
1
1
1
1
1
2
1
1
1
1
1
2
1
0
1
0
0
1
0
1
1
1
1
1
4
1
2
1
0
2
0
1
1
1
1
1
4
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
4
1
1
1
2
1
1
1
1
1
1
4
1
13
0
0
13
0
0
0
0
0
1
1
1
1
1
2
1
2
2
0
1
0
1
1
2
1
4
1
1
1
1
1
4
1
1
1
1
1
1
2
1
0
2
1
1
4
1
1
0
0
1
0
1
4
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
2
1
1
2
0
1
1
1
1
4
0
1
1
1
1
4
1
1
1
1
0
0
1
4
1
1
1
1
5
1
5
13
5
0
1
1
0
1
1
1
1
1
4
1
1
1
1
1
5
0
0
2
1
1
2
2
1
1
2
1
1
1
0
1
1
1
2
1
1
4
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
0
2
1
1
1
1
1
1
4
1
0
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
4
4
4
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
4
2
1
1
1
1
1
4
1
1
1
1
1
1
1
1
4
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
2
2
1
1
1
1
1
4
1
2
1
2
1
1
2
1
4
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
4
5
1
2
1
1
1
1
1
4
1
2
1
2
1
1
1
1
1
1
2
1
1
4
1
1
4
1
1
1
1
0
0
2
1
2
1
2
1
0
0
0
4
4
4
1
2
1
2
2
1
1
2
1
2
1
2
0
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
2
1
1
1
1
1
0
1
1
1
0
2
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
2
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
2
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
2
1
1
1
1
1
1
1
1
2
1
0
1
0
1
1
1
0
1
2
1
1
1
1
1
0
2
0
0
1
0
2
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
5
0
0
1
1
1
1
1
1
1
1
1
1
2
1
2
1
1
2
1
2
1
1
2
1
2
1
1
1
2
1
1
1
1
1
1
1
1
2
1
2
1
1
5
1
1
0
0
1
2
2
2
5
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
2
2
1
1
2
1
1
2
1
1
5
2
1
5
1
1
1
1
1
2
0
0
2
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
2
1
1
0
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
4
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
4
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
0
0
1
1
2
2
1
2
1
0
0
1
1
0
1
2
0
1
1
0
1
1
2
1
1
1
1
1
1
2
1
2
1
1
1
2
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
2
1
1
1
1
1
1
1
0
1
1
2
1
1
2
0
1
1
1
0
3
1
1
0
1
1
1
1
2
1
2
2
1
2
1
0
0
1
1
2
2
1
1
2
1
0
1
5
1
5
0
0
2
2
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
0
1
1
1
2
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
2
1
2
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
2
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
2
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
2
1
1
1
1
0
1
2
1
0
0
1
1
1
1
1
1
2
1
0
1
0
2
1
1
1
1
1
1
2
1
1
1
4
1
1
1
1
1
0
1
1
1
1
2
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
1
5
1
1
1
0
1
0
0
1
2
1
2
1
2
5
1
1
0
2
2
0
1
1
2
2
1
1
1
1
2
1
5
0
0
0
0
2
1
1
1
1
2
1
1
5
1
1
1
1
1
2
0
0
1
0
1
0
0
0
1
1
2
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
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
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
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
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
2
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
2
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
4
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
2
1
1
0
1
0
1
1
1
1
1
2
0
1
1
1
1
0
1
1
1
1
1
1
1
2
1
1
1
1
1
0
0
1
1
2
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
2
1
1
0
1
1
5
2
1
1
1
2
0
0
2
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
2
2
1
1
1
2
1
2
0
0
2
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
2
1
1
13
1
1
1
5
5
0
0
0
0
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
4
1
5
0
1
0
1
1
1
1
1
1
1
1
1
2
1
1
1
5
0
0
0
1
1
1
1
1
1
1
5
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
3
1
1
1
0
1
1
1
5
1
0
0
0
1
1
2
4
1
1
0
1
1
2
1
1
1
1
1
1
13
0
0
0
1
1
1
1
1
1
1
1
6
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
1
1
1
1
1
3
1
3
3
3
3
3
3
3
3
3
3
3
3
3
1
1
1
1
1
3
3
3
3
3
3
3
3
3
3
3
3
3
1
1
0
1
3
3
4
3
3
1
1
1
0
3
3
3
3
3
3
1
3
1
5
2
0
0
1
1
3
3
3
1
1
1
1
5
0
0
2
1
1
1
1
1
1
1
1
2
1
5
0
0
2
1
1
3
3
3
1
1
1
1
5
0
0
2
1
2
3
1
3
3
1
1
1
1
1
1
2
1
1
2
1
5
0
1
1
1
1
0
2
1
2
1
1
1
0
2
3
2
1
1
2
1
1
1
0
0
3
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
2
2
1
1
2
2
2
1
1
2
13
0
0
0
3
3
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
0
1
1
1
1
3
1
1
1
1
1
0
2
1
1
1
1
1
2
1
1
1
1
0
1
1
1
1
3
1
1
1
3
1
1
1
1
1
1
1
0
1
1
1
2
1
1
1
1
1
2
1
0
2
1
1
1
1
1
1
2
1
2
1
1
1
1
1
0
1
1
1
1
1
1
1
3
0
1
1
1
1
1
1
1
1
3
1
1
1
1
1
1
1
0
1
1
1
2
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
0
0
1
0
1
1
1
0
1
1
1
2
1
9
1
9
1
1
1
1
1
1
0
9
2
0
2
0
0
1
1
1
1
1
0
1
0
0
0
9
1
1
1
9
1
1
9
1
2
1
1
1
0
1
0
2
1
1
0
2
1
1
9
1
1
0
2
1
1
0
1
9
1
1
0
0
1
9
1
0
2
1
1
1
0
1
1
2
0
1
1
1
1
1
0
9
9
1
2
2
2
1
2
1
1
1
5
1
2
2
1
1
1
1
1
2
2
1
1
2
0
2
1
2
2
1
1
1
0
2
0
0
1
1
1
1
1
1
1
0
0
0
2
2
1
1
0
1
1
1
0
2
0
1
0
1
1
0
1
1
1
2
0
1
2
1
1
2
1
1
1
1
1
1
1
33
33
33
1
1
2
1
1
1
1
1
1
1
33
33
33
5
0
0
0
0
2
1
2
2
1
1
1
0
1
1
1
1
1
1
0
1
2
2
2
1
0
0
0
1
2
2
2
1
1
1
1
1
1
3
1
1
0
1
1
0
2
2
1
1
2
0
0
1
1
1
1
2
2
2
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
0
0
0
0
1
1
0
0
0
0
2
1
2
1
1
0
1
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
2
1
1
1
1
1
1
2
0
2
0
0
1
1
1
1
1
0
1
2
5
1
1
1
1
0
1
1
2
1
1
2
1
1
1
1
1
1
1
0
2
1
1
0
1
2
5
1
1
1
1
0
1
1
2
1
1
1
1
1
1
0
0
2
0
0
1
1
1
1
5
0
0
0
1
1
1
0
1
1
1
0
2
1
0
1
1
1
1
1
1
1
1
2
1
0
1
1
1
0
0
2
1
0
1
1
1
5
1
2
1
0
1
1
1
1
2
1
1
1
1
1
1
2
1
1
0
1
1
1
1
1
1
1
1
0
2
1
1
0
1
1
1
1
1
1
1
2
0
2
1
0
1
1
1
1
2
1
2
1
0
1
2
1
1
2
1
2
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
5
1
1
0
2
1
1
0
0
1
2
1
0
1
1
1
1
1
1
5
1
1
1
1
2
0
1
0
2
1
2
1
0
1
2
2
1
1
1
1
1
0
1
2
1
1
1
1
1
0
2
5
1
1
1
1
1
0
0
2
2
1
1
0
1
0
1
1
2
2
1
1
0
1
2
1
1
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
0
1
1
0
2
5
1
2
1
1
2
1
1
2
1
0
0
0
1
1
1
1
1
1
2
1
1
1
1
2
1
1
2
0
1
5
5
0
1
1
0
2
1
1
0
1
1
1
2
0
2
1
1
1
1
1
1
1
1
1
2
1
1
1
1
0
1
2
0
1
1
1
1
1
1
1
2
0
2
2
1
1
2
1
1
2
1
1
2
1
1
2
1
1
2
1
0
1
1
1
1
0
2
2
1
1
2
1
1
2
1
1
2
1
1
2
1
1
2
1
1
2
0
0
0
1
5
5
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
2
0
0
1
1
1
0
1
1
1
1
2
0
0
1
0
2
1
2
1
1
1
1
2
1
2
0
1
0
1
2
1
1
1
1
1
0
2
5
1
1
1
1
1
0
0
2
2
1
1
0
1
2
0
1
1
1
0
2
1
1
1
1
1
1
0
1
2
1
1
1
1
1
1
0
1
1
5
1
1
1
0
2
1
1
2
1
1
2
1
0
0
0
1
1
1
2
1
1
2
1
1
1
1
2
1
1
2
0
1
5
5
0
1
1
0
2
1
1
0
1
1
1
2
0
2
1
1
1
1
1
1
1
1
1
2
1
1
1
1
0
1
2
0
1
1
1
1
1
1
1
0
0
1
2
2
1
1
1
1
1
2
1
1
0
1
1
2
0
2
1
2
0
2
1
0
2
2
1
1
1
1
1
1
2
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
2
0
1
0
1
2
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
2
0
2
1
0
0
1
1
1
1
1
1
1
1
1
2
1
5
2
2
1
1
1
1
1
2
1
1
1
1
1
0
0
1
1
1
1
2
2
2
1
1
1
1
2
2
0
1
0
5
1
1
2
1
0
1
2
1
1
1
0
2
1
0
5
1
1
2
1
0
1
2
1
1
1
0
2
2
1
2
1
1
1
0
2
1
1
0
1
1
1
0
5
5
1
1
1
1
1
1
1
1
0
0
0
0
2
2
4
4
4
2
5
5
1
1
1
1
1
1
1
1
0
0
0
0
2
2
4
4
4
2
2
1
2
1
1
1
2
0
2
2
1
1
1
1
1
1
1
2
1
1
1
1
2
1
0
1
1
1
1
2
1
1
0
1
4
1
1
1
1
2
1
1
0
1
1
1
1
1
1
1
1
2
1
0
0
1
1
0
1
0
1
1
1
5
0
0
1
1
1
1
2
1
1
1
1
2
1
1
1
5
0
0
2
1
2
2
1
2
1
1
1
1
1
1
5
0
0
2
1
0
1
1
1
1
1
1
1
1
2
1
1
1
5
0
0
2
1
0
2
1
1
1
1
1
5
0
0
2
1
1
0
1
1
1
1
2
1
1
5
2
1
0
0
1
1
1
1
2
1
1
1
1
1
1
1
5
1
2
2
1
2
1
0
0
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
1
1
5
0
0
2
1
1
1
1
1
1
1
5
1
0
0
2
1
1
1
2
1
1
0
1
1
0
1
0
13
0
0
0
1
1
1
1
1
1
2
1
1
1
1
1
1
2
1
1
1
2
1
1
2
2
1
2
1
1
2
2
2
1
1
1
0
0
2
1
4
1
1
2
1
2
1
1
5
1
2
0
1
1
1
1
0
0
1
0
2
1
1
0
2
1
1
5
0
0
0
1
2
2
1
2
1
1
1
1
2
2
1
1
4
1
4
1
1
1
1
0
0
0
0
1
1
2
1
5
1
1
1
0
1
0
0
1
2
1
1
2
1
1
5
1
1
0
2
2
0
1
1
2
1
5
1
1
1
0
1
0
0
1
2
1
1
2
1
1
5
1
1
0
2
2
0
2
1
1
1
1
1
1
2
2
1
5
1
1
1
5
1
2
1
0
1
1
0
1
0
0
0
2
1
0
0
2
1
1
1
1
1
1
2
2
1
5
1
1
1
5
1
1
1
1
5
2
0
1
0
0
1
0
0
1
1
2
0
0
1
2
1
2
2
1
1
1
0
2
1
2
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
2
1
2
2
2
1
1
2
1
1
1
2
2
2
1
1
1
1
1
1
2
1
1
1
1
1
2
2
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
2
1
2
2
1
2
1
1
1
2
1
1
1
2
1
1
1
1
1
1
2
1
2
1
0
0
1
1
2
1
1
1
5
1
2
2
1
1
1
1
1
2
1
2
2
2
1
2
1
1
1
1
1
2
1
1
1
1
2
0
1
2
0
1
1
1
1
0
1
2
0
2
1
0
1
1
0
2
1
1
2
1
1
2
2
1
2
1
1
0
1
1
0
0
1
0
0
13
0
2
1
1
1
1
0
1
0
1
1
2
1
0
1
0
1
1
2
1
1
0
1
2
1
0
1
2
1
2
1
1
1
0
1
0
2
1
1
1
2
1
0
1
0
1
1
2
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
2
1
0
2
1
1
1
1
0
0
1
1
1
1
1
2
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
5
1
1
1
1
1
1
1
1
2
0
1
1
1
1
0
0
2
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
2
5
1
1
2
5
2
1
2
1
1
1
1
1
1
1
1
0
0
2
0
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
5
2
0
0
1
4
1
1
2
1
0
2
1
1
5
1
1
1
1
5
2
1
1
1
1
1
0
1
0
0
5
2
0
0
2
1
1
5
1
1
1
2
1
1
1
1
0
0
0
2
1
4
1
1
1
1
1
1
2
1
1
5
1
1
1
2
1
1
1
1
0
0
0
2
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
5
2
0
0
5
0
0
1
1
1
5
5
1
1
2
1
1
1
2
1
1
0
0
0
0
2
4
1
5
0
0
2
1
4
1
1
1
1
5
0
0
2
1
1
4
4
2
5
1
5
2
1
1
1
2
1
1
1
0
0
0
0
2
4
1
1
2
5
0
0
1
1
1
1
2
1
1
5
1
1
1
2
5
0
0
1
1
4
1
5
2
0
0
1
4
1
1
1
1
5
0
0
2
1
1
5
1
1
1
1
1
1
1
2
1
5
2
0
0
1
4
1
1
1
1
5
0
0
2
1
1
1
1
1
1
1
2
1
5
2
0
0
1
4
1
1
1
1
5
0
0
2
1
1
1
1
1
1
1
1
2
5
1
2
1
1
0
1
0
0
2
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
5
0
0
2
1
2
1
2
1
1
0
1
1
1
1
1
1
1
1
1
8
0
1
5
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
0
1
0
0
0
0
0
2
1
0
1
1
1
1
0
1
0
0
1
1
1
2
1
9
1
9
1
1
1
2
1
0
9
0
0
1
1
0
0
0
0
0
2
1
1
2
1
1
1
1
0
0
0
1
1
0
0
1
2
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
13
0
1
1
1
2
2
1
1
4
1
1
4
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
2
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
2
1
2
2
1
2
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
2
1
0
1
0
1
0
0
1
1
2
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
2
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
2
0
0
1
0
0
1
2
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
2
1
1
1
1
1
1
2
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
2
0
2
1
1
1
1
1
1
1
2
2
0
0
1
1
0
1
1
1
0
0
2
1
0
1
1
1
1
1
1
0
0
0
0
2
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
2
0
0
0
1
0
1
2
1
1
1
1
1
1
1
0
1
2
1
5
0
2
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
2
2
5
2
0
2
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
2
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
2
1
1
1
1
1
1
1
1
1
0
0
1
1
2
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
2
2
0
0
0
21
2
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
2
1
0
1
4
4
1
1
1
1
1
1
2
0
0
2
1
0
0
1
2
1
1
1
1
1
1
0
1
1
1
1
1
5
1
1
1
1
1
1
1
1
0
1
2
0
1
1
1
1
1
5
1
1
1
1
1
1
0
0
2
0
1
1
1
1
1
1
0
0
1
1
2
1
1
1
0
0
0
1
1
2
0
1
1
9
1
1
2
1
1
0
1
9
1
2
1
1
0
1
9
1
1
0
0
1
1
1
1
1
1
1
1
0
0
2
1
1
0
1
1
1
2
1
1
1
1
1
0
0
1
1
0
1
0
1
1
2
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
2
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
5
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
5
1
1
0
1
1
4
1
4
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
2
1
2
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
5
0
1
1
1
1
2
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
2
2
1
1
1
1
2
1
1
1
1
1
0
1
0
1
2
1
1
1
1
1
1
2
1
1
1
1
0
1
1
2
1
1
2
1
1
2
1
1
1
1
1
1
2
1
1
1
2
2
1
1
2
1
1
1
1
2
1
1
0
0
0
0
1
2
1
1
1
1
1
0
1
1
1
1
1
1
2
4
2
0
0
0
21
0
1
1
1
1
1
1
2
1
0
2
0
2
1
0
0
1
1
1
1
1
1
1
0
1
2
0
1
2
1
2
1
1
0
2
1
1
1
1
1
0
0
1
1
1
1
1
1
1
2
1
1
1
0
0
5
0
5
1
1
1
1
1
1
1
2
2
1
0
1
1
1
2
1
1
1
2
1
1
2
1
1
1
0
1
1
1
1
1
1
1
1
0
2
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
2
0
1
0
1
0
2
1
1
1
2
1
1
1
1
1
1
2
1
1
2
1
1
0
1
1
1
2
1
1
0
2
1
0
1
1
1
1
0
0
2
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
2
1
0
2
1
1
1
1
1
1
1
1
1
2
1
1
2
2
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
0
1
2
1
1
1
0
0
1
0
0
1
1
1
1
1
9
1
1
9
1
2
1
0
1
1
1
1
1
0
2
1
1
9
1
1
0
0
1
9
1
1
9
1
9
1
1
0
0
1
1
1
1
1
1
1
1
2
1
0
1
2
1
1
1
0
0
5
2
1
1
0
0
2
0
1
1
1
1
1
1
1
1
1
1
1
1
5
2
1
1
0
0
2
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
2
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
2
1
1
0
0
1
2
1
0
1
1
1
2
1
0
0
1
5
1
1
2
1
1
1
1
0
2
1
1
0
0
1
0
1
0
1
2
1
0
1
1
1
1
1
1
0
1
0
1
2
1
0
1
1
1
1
1
1
9
1
2
0
2
0
0
1
1
1
1
2
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
2
2
2
2
5
5
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
0
0
2
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
2
1
1
2
2
1
1
4
1
5
0
0
2
1
1
1
0
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
2
1
0
2
1
1
1
1
1
0
1
0
1
1
1
0
0
2
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
2
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
2
0
1
1
1
1
4
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
2
1
2
1
1
1
0
2
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
1
1
3
3
3
1
0
1
1
1
1
1
0
0
0
0
2
1
1
1
1
1
1
1
2
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
1
0
1
1
1
0
0
1
1
1
1
1
1
2
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
1
0
1
1
0
1
2
1
1
1
2
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
2
0
1
2
1
2
1
1
1
2
1
2
2
1
1
1
1
2
1
0
0
2
2
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
0
2
1
0
1
0
0
0
0
0
1
2
1
0
1
0
2
1
1
1
1
1
1
1
1
2
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
2
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
2
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
2
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
2
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
2
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
2
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
2
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
2
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
4
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
2
1
1
1
1
0
1
0
1
1
1
1
2
1
1
1
1
1
2
1
1
2
2
1
2
1
0
1
1
1
1
1
1
0
1
1
5
0
0
2
1
1
2
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
2
2
1
1
2
2
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
2
2
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
2
1
2
1
1
5
1
0
2
1
1
1
1
1
1
0
2
1
1
1
1
0
0
1
0
2
1
1
1
1
1
1
0
2
1
1
1
1
1
2
1
0
1
1
1
2
0
2
1
0
1
1
1
0
0
2
1
0
1
1
1
1
2
1
2
2
1
0
1
1
1
1
1
1
1
1
2
1
0
1
2
1
0
1
1
1
1
2
2
1
0
1
1
1
1
1
1
1
1
1
2
1
2
1
1
5
1
0
2
1
1
1
1
1
1
0
2
1
1
1
1
0
0
1
0
2
1
1
1
1
1
1
0
2
1
1
1
1
1
2
1
0
1
1
1
2
0
2
1
0
1
1
1
0
0
2
1
0
1
1
1
1
2
1
2
2
1
0
1
1
1
1
1
1
1
1
2
1
0
1
2
1
0
1
1
1
1
2
2
1
0
1
1
1
1
2
1
1
1
1
5
1
1
1
0
1
1
2
0
0
0
0
1
1
2
1
1
1
5
2
1
1
1
1
1
1
1
0
5
0
1
0
1
0
0
0
1
1
2
0
1
2
1
1
2
1
13
1
2
2
1
1
1
0
0
0
0
2
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
2
1
0
0
1
1
1
0
1
0
1
1
1
1
2
1
0
1
0
1
1
1
1
2
1
0
1
1
2
1
1
1
0
1
2
1
2
1
2
1
1
0
2
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
2
1
1
1
1
0
0
1
1
0
1
1
1
1
1
2
1
1
1
1
1
2
0
2
0
3
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
2
1
1
1
0
0
1
1
0
1
0
1
3
1
2
1
1
2
1
1
2
1
1
1
1
0
1
1
0
0
1
2
1
1
1
1
1
1
1
1
1
0
1
1
0
0
2
2
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
2
2
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
2
2
1
1
1
1
1
6
1
1
3
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
2
2
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
5
5
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
1
2
0
0
13
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
2
1
1
1
1
2
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
2
1
2
2
1
1
1
5
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
2
1
2
2
0
1
1
0
2
1
1
0
5
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
2
1
1
0
1
0
1
1
1
1
2
1
1
0
1
0
1
1
1
1
2
1
0
1
0
1
1
1
1
2
1
2
1
1
1
1
1
2
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
0
0
1
0
1
2
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
2
1
1
1
0
0
1
0
1
2
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
2
2
1
1
1
1
1
1
0
0
0
2
1
1
0
1
0
1
1
1
1
1
1
1
1
1
2
2
1
1
2
2
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
1
2
1
1
2
1
1
0
1
1
0
0
1
1
2
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
2
1
1
1
1
0
0
0
1
1
1
1
2
2
1
1
1
2
2
2
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
0
1
1
1
0
1
2
0
1
0
1
1
3
2
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
2
1
1
1
1
1
1
1
0
0
0
0
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
1
1
1
1
1
2
1
1
2
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
2
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
2
1
1
1
1
1
1
0
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
2
1
1
1
1
2
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
2
2
1
1
1
1
1
1
2
1
1
2
1
1
1
1
2
1
0
1
1
1
1
0
2
1
1
2
1
1
1
1
0
2
1
1
1
0
0
2
1
1
1
1
1
1
0
2
1
1
1
1
1
1
4
1
1
5
0
0
1
1
1
0
2
1
1
1
1
1
1
4
1
1
5
0
0
2
1
1
1
1
1
1
1
1
0
0
1
1
2
1
1
1
0
0
2
1
1
1
2
1
1
1
1
0
2
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
2
1
0
2
1
1
1
0
1
1
1
1
1
1
1
1
1
0
2
1
0
2
1
1
1
1
1
1
0
2
1
0
2
1
0
1
1
1
1
2
1
0
2
1
0
0
1
1
1
1
1
1
1
1
1
1
2
2
2
1
1
1
2
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
2
1
0
2
1
2
1
5
1
0
0
1
1
1
1
2
1
5
1
0
0
1
1
1
1
1
1
5
1
2
1
0
0
1
5
1
1
0
0
1
2
1
2
1
1
1
1
1
1
1
1
1
9
0
1
1
2
2
1
0
1
2
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
0
1
1
1
0
2
1
1
0
2
1
1
1
1
0
2
1
1
0
1
1
0
1
2
2
1
1
0
2
1
1
1
1
0
2
1
1
0
1
2
0
1
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
0
0
0
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
0
0
1
2
1
1
2
1
2
2
1
0
0
1
1
1
2
2
1
1
1
1
2
1
1
0
1
2
1
1
1
1
1
2
1
1
1
1
1
0
1
2
0
1
1
1
1
2
1
1
2
2
1
1
1
1
1
1
1
0
1
1
1
2
1
0
1
1
2
1
1
1
1
1
1
0
1
1
1
1
1
1
1
2
1
1
0
2
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
2
1
1
0
2
1
1
1
1
0
1
1
2
2
1
2
2
1
1
0
0
1
1
1
1
1
0
2
1
1
1
1
2
1
2
1
1
2
1
1
1
1
1
1
1
0
1
1
1
1
1
2
1
0
1
1
1
5
0
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
0
5
0
2
1
1
1
1
2
1
1
2
1
1
1
2
1
1
1
2
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
0
1
1
1
1
1
1
1
2
1
1
1
1
1
2
1
2
1
1
2
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
13
0
0
0
13
0
0
0
0
0
13
0
0
1
2
1
0
1
0
2
1
1
1
1
1
1
2
1
1
0
1
1
1
3
3
3
4
1
1
2
13
0
0
1
1
1
2
1
1
4
1
1
1
1
2
1
1
1
1
1
1
2
1
1
5
2
1
0
0
1
1
1
1
2
1
1
2
0
0
2
1
1
5
0
0
1
1
1
1
1
5
0
0
2
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
2
1
2
1
1
2
5
0
0
1
1
1
1
2
1
1
1
1
0
2
1
1
1
1
1
1
5
0
0
2
1
1
1
1
1
1
2
0
0
5
2
1
2
2
1
0
0
1
1
1
1
4
1
1
2
1
1
5
2
1
2
2
1
0
0
1
1
1
1
1
1
2
1
1
0
1
5
0
0
2
1
1
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
2
5
0
0
1
1
1
1
2
2
1
1
1
1
0
1
1
0
0
1
1
1
2
5
1
2
2
2
1
1
1
1
0
0
1
1
6
1
2
1
1
1
1
2
5
0
0
1
1
1
1
2
1
1
1
2
1
1
1
1
2
2
5
0
0
1
1
1
1
2
1
1
1
2
1
1
0
1
1
2
5
2
1
1
0
0
2
2
1
1
1
2
1
1
1
1
1
5
0
0
2
1
2
1
1
5
1
1
1
1
2
1
1
0
1
0
1
1
1
0
2
1
1
1
1
1
1
5
0
0
2
1
2
1
1
5
0
1
0
1
1
1
0
2
1
1
1
1
1
1
5
0
0
2
1
2
1
1
5
1
1
1
1
1
1
0
2
1
1
1
1
5
0
0
2
1
5
1
1
2
1
1
1
1
0
0
1
1
2
1
1
1
5
0
0
2
1
1
0
1
1
0
1
2
1
2
1
1
0
1
1
1
1
1
1
5
0
0
2
1
2
2
1
1
1
1
1
5
0
1
0
1
1
1
1
1
1
1
2
5
0
0
1
1
1
1
4
1
1
1
1
2
2
1
1
1
1
1
1
1
5
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
2
2
0
1
1
0
1
1
1
1
2
0
0
2
5
0
0
0
0
2
1
1
0
1
0
1
1
2
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
2
1
2
1
1
2
1
0
5
0
0
0
0
1
1
0
0
2
2
1
2
1
1
1
1
1
1
1
1
1
0
0
2
2
1
2
1
1
1
1
1
1
1
5
0
0
0
0
1
2
1
2
1
1
2
2
2
1
1
1
1
2
1
1
1
1
2
1
1
1
1
1
2
1
2
2
1
1
0
0
0
0
0
0
0
2
1
2
0
1
1
1
2
0
0
1
5
0
0
0
0
0
1
1
0
1
0
1
1
2
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
2
1
0
1
2
1
1
2
5
0
0
0
0
0
1
1
1
1
1
1
0
0
0
2
1
0
1
1
1
0
1
0
1
1
1
1
1
1
2
1
2
2
0
2
1
2
2
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
2
1
0
1
1
1
0
1
0
1
1
1
1
1
1
2
1
2
2
0
2
1
2
2
0
0
1
1
0
0
5
0
0
0
0
5
0
0
0
0
5
0
0
0
0
1
1
0
1
1
1
0
0
2
1
0
1
0
1
0
1
1
1
1
2
2
1
1
1
1
1
1
1
0
2
2
1
1
0
1
1
1
0
0
2
1
0
1
0
1
0
1
1
1
1
2
2
1
1
1
1
1
1
1
0
2
2
5
0
0
0
0
5
0
0
0
0
5
0
0
0
0
5
0
0
0
0
5
0
0
0
0
1
1
1
1
1
1
5
1
1
1
2
1
0
0
0
1
1
0
4
4
0
5
0
1
0
2
1
1
1
1
1
0
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
5
0
0
1
1
0
0
0
5
0
0
1
1
1
1
1
0
5
0
1
0
1
1
1
1
1
1
5
0
1
1
2
0
1
1
1
1
1
1
1
5
5
1
1
1
1
0
0
0
0
2
2
1
1
4
2
5
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
5
2
0
0
2
1
0
1
1
1
0
0
2
2
1
5
2
0
0
5
1
2
1
1
0
5
0
0
2
1
1
0
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
0
1
5
1
2
2
1
0
2
1
1
1
1
1
1
1
0
0
0
0
1
0
11
0
0
0
1
0
1
1
1
1
2
1
0
1
1
2
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
2
1
1
2
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
2
1
5
1
1
2
1
1
0
1
1
1
0
0
1
0
1
2
1
1
1
1
1
1
0
1
1
2
0
1
2
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
2
1
1
1
0
1
0
0
1
1
1
0
2
1
0
2
0
1
0
1
1
1
1
2
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
2
1
1
1
1
1
0
1
0
0
1
1
1
1
2
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
5
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
1
0
2
1
1
0
0
5
1
1
1
1
0
1
1
0
1
1
2
5
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
6
0
1
1
0
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
5
0
0
0
1
2
2
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
0
1
2
1
1
2
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
2
1
2
2
1
1
1
1
2
2
1
2
1
1
1
1
1
1
1
3
3
0
1
0
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
2
0
0
1
1
1
1
1
2
1
1
1
0
4
4
4
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
4
4
4
1
0
1
1
1
0
0
0
1
1
0
0
1
1
4
4
4
1
1
1
2
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
5
1
1
2
1
1
1
2
1
5
0
0
1
1
0
2
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
2
1
1
1
1
2
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
2
1
1
0
0
1
0
1
1
1
1
1
1
2
1
1
4
4
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
2
1
1
1
1
1
2
2
2
2
2
1
5
1
1
1
2
1
1
1
5
1
2
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
2
1
1
0
1
1
1
1
1
1
0
0
5
0
0
0
0
1
1
1
1
2
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
2
1
1
1
1
1
1
0
1
1
1
0
0
1
2
1
1
1
1
5
1
0
1
1
0
0
2
1
1
1
1
1
1
0
1
1
2
5
1
1
2
2
2
0
1
1
1
1
1
1
1
0
0
0
1
5
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
2
4
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
2
1
1
1
1
1
0
1
1
1
1
1
1
1
2
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
2
1
1
1
1
0
1
1
1
2
0
1
1
1
1
1
1
0
1
1
1
2
1
1
0
1
1
1
1
0
1
1
5
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
2
1
1
1
1
1
1
0
1
2
0
1
2
1
0
1
1
1
1
1
1
1
1
0
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
0
1
2
2
1
0
1
1
0
1
2
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
2
1
1
0
1
1
1
0
0
1
0
0
0
1
1
2
1
0
1
1
1
1
1
9
2
1
0
1
9
9
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
2
0
1
1
2
1
1
1
0
1
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
2
1
2
0
2
1
1
1
1
0
1
0
2
1
1
0
1
0
1
0
2
1
1
0
2
1
1
1
1
0
2
1
1
0
1
0
1
2
1
2
1
1
1
1
1
9
1
9
1
1
0
1
1
1
1
0
9
2
0
2
0
2
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
9
1
9
0
0
1
1
1
9
2
0
2
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
4
4
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
2
1
1
0
1
0
0
0
0
2
2
1
1
1
1
1
0
0
0
2
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
5
1
1
0
1
1
0
1
1
0
1
1
0
5
1
2
1
2
1
1
2
0
1
0
0
2
0
1
2
1
2
0
1
2
1
1
1
2
0
0
0
0
1
0
1
1
0
13
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
5
2
1
1
0
1
1
0
1
5
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
5
2
1
1
1
2
1
0
0
1
1
2
1
1
2
1
5
0
1
1
1
1
1
1
1
0
1
1
1
2
1
5
2
1
1
1
2
1
2
1
1
1
5
1
1
1
1
1
1
1
1
1
1
1
0
0
0
2
2
1
1
1
1
1
1
1
5
0
0
0
17
1
1
1
1
1
1
5
0
0
0
2
2
1
1
1
1
1
1
0
1
2
2
1
1
1
1
1
1
0
1
1
8
1
1
13
0
0
0
1
1
1
1
1
1
1
1
2
0
0
2
13
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
2
0
1
1
1
1
1
2
0
1
1
0
1
6
0
0
1
1
1
0
0
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
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
0
1
1
4
1
1
1
0
0
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
3
3
3
3
3
3
13
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
2
1
0
1
13
1
1
5
1
5
1
0
0
0
1
1
4
1
1
1
1
1
1
1
5
1
2
0
1
1
1
0
1
1
1
0
1
1
1
1
2
1
1
1
1
1
4
1
1
1
1
1
2
1
1
2
1
1
1
2
1
1
2
4
4
4
4
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
4
1
1
2
1
2
1
1
2
2
2
1
1
1
1
1
1
4
1
1
2
1
2
1
1
2
2
2
1
1
1
1
1
1
4
1
1
1
0
0
1
1
2
1
1
1
4
1
1
2
1
1
2
1
1
4
1
4
1
2
1
1
1
1
1
1
2
1
4
1
1
1
1
1
2
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
2
1
2
0
1
1
4
4
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
0
2
1
1
1
1
0
1
2
2
1
0
2
0
2
1
2
1
1
1
5
1
2
1
1
2
1
2
0
0
2
1
2
0
1
0
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
2
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
4
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
13
0
0
0
5
1
1
1
2
1
1
1
1
1
0
1
2
0
4
13
1
0
1
0
1
0
1
0
5
0
0
0
0
13
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
2
0
1
1
1
1
2
0
1
1
1
1
5
5
1
1
2
2
1
1
2
2
1
1
5
5
0
0
0
0
1
1
1
1
1
1
1
1
13
1
1
1
0
2
5
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
0
5
0
0
0
2
1
0
1
0
2
2
1
1
1
1
1
1
8
8
0
0
5
1
1
1
1
1
2
2
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
0
0
8
0
13
0
1
1
1
1
1
1
2
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
11
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
0
1
1
1
1
1
1
1
1
2
1
1
1
5
1
1
0
1
0
13
4
1
1
0
0
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
0
1
1
1
1
1
4
0
1
1
0
1
1
0
4
4
1
1
2
2
1
2
1
1
2
1
2
2
0
2
4
1
1
1
1
1
1
4
4
4
4
4
4
13
1
1
0
1
1
1
1
5
0
0
4
6
4
1
1
1
1
13
0
0
4
5
1
1
1
1
1
0
2
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
3
3
3
2
1
5
1
1
1
1
1
1
1
2
1
1
1
1
1
1
2
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
2
2
2
2
5
0
2
0
1
1
1
1
1
1
2
0
0
0
2
0
1
1
1
1
1
1
2
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
2
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
2
1
1
1
1
1
1
0
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
2
1
1
1
2
1
1
0
0
1
0
3
3
3
1
1
1
1
1
1
2
1
1
1
1
1
1
0
0
1
1
0
2
1
2
1
5
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
2
1
1
0
1
1
1
1
1
1
1
2
1
1
0
1
1
1
1
1
1
1
1
0
0
2
1
0
0
1
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
2
2
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
2
1
2
1
2
1
0
2
1
1
1
1
1
1
2
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
2
1
1
1
5
1
1
2
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
3
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
3
1
3
0
1
1
1
0
0
1
1
2
1
1
1
1
1
1
1
5
2
1
1
1
1
1
1
5
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
5
1
2
1
1
1
1
1
1
2
1
1
1
0
0
17
1
1
1
0
0
34
1
1
1
1
1
1
1
1
1
1
4
4
1
1
1
1
1
1
1
2
0
1
1
1
1
1
1
1
1
1
1
5
0
0
0
2
2
0
1
1
1
1
1
1
2
2
1
1
1
1
1
1
5
0
0
0
8
8
1
1
1
1
1
1
0
2
2
1
1
1
1
1
1
1
1
1
1
0
5
0
0
0
5
0
0
0
2
1
0
1
1
8
8
1
1
1
1
1
1
1
0
5
0
0
0
1
1
1
1
1
1
2
1
1
1
1
1
1
1
5
0
0
0
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
5
0
0
0
1
1
8
8
5
1
1
1
1
2
2
1
1
1
1
1
5
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
8
8
1
1
1
1
1
1
1
1
1
1
0
2
2
1
1
1
1
1
1
1
5
0
0
0
8
5
1
2
0
1
2
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
8
1
2
1
6
6
1
0
2
6
6
6
6
1
1
1
1
1
1
1
1
1
1
1
1
0
6
1
1
1
1
1
0
2
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
16
4
4
4
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
2
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
2
2
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
13
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
2
2
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
2
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
0
0
1
1
1
1
1
1
1
1
1
1
0
13
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
2
1
2
1
1
1
1
2
0
2
2
0
0
0
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
2
1
2
5
1
1
1
1
1
4
1
0
0
1
1
1
1
1
1
0
13
5
0
1
1
0
1
1
1
1
1
4
1
0
0
1
1
1
1
1
1
0
13
5
0
1
1
0
1
1
1
1
2
1
1
0
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
4
4
1
1
2
4
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
2
2
1
1
1
0
0
4
0
1
1
1
1
1
1
0
1
1
2
4
1
1
1
1
1
1
1
1
0
0
1
1
1
1
4
1
1
1
1
2
1
1
0
1
1
1
1
1
1
1
1
2
1
2
1
1
0
1
1
4
1
4
0
1
1
1
2
1
1
1
1
1
1
4
1
2
1
1
0
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
3
3
3
1
4
0
1
1
2
1
1
1
1
1
1
0
1
1
1
1
1
1
4
0
13
0
1
1
4
1
4
0
1
1
4
1
4
0
1
1
4
1
4
2
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
2
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
2
1
1
13
1
1
1
5
5
0
0
0
0
1
1
1
1
1
1
2
1
2
1
2
1
2
2
1
1
1
1
1
1
1
5
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
3
3
1
1
1
2
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
5
1
2
1
1
1
1
1
1
2
0
0
0
1
2
2
1
1
0
1
1
1
2
0
0
2
2
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
2
5
0
0
1
1
1
1
1
1
1
1
1
1
0
2
0
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
1
1
1
1
1
1
2
1
0
1
1
1
1
0
1
3
3
1
1
0
2
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
2
1
1
1
1
1
1
1
0
1
1
1
1
1
1
2
1
0
1
1
1
1
0
1
3
3
1
1
0
2
1
1
1
1
1
2
1
1
1
1
1
0
1
2
1
0
5
1
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
2
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
2
1
0
1
1
1
1
1
1
4
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
4
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
2
1
1
1
5
1
1
1
2
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
3
1
1
2
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
2
1
1
1
2
1
1
1
1
1
1
1
1
1
5
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
2
2
0
0
1
1
1
1
1
2
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
2
0
0
0
2
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
2
0
0
1
1
1
0
0
6
6
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
6
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
1
1
1
1
1
1
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
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
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
2
2
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
2
1
2
2
1
1
0
0
1
0
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
2
0
1
1
1
1
1
1
1
1
2
1
1
2
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
1
1
1
2
0
1
1
3
3
3
1
1
1
1
1
1
0
1
1
1
1
1
2
1
1
1
3
4
2
4
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
5
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
0
0
1
1
2
0
0
1
1
1
1
1
1
1
0
5
0
1
1
1
1
1
1
2
2
1
1
1
2
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
5
5
1
1
1
1
1
1
1
1
1
2
11
3
3
3
3
1
0
0
1
1
5
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
2
1
1
2
0
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
2
1
4
1
1
1
0
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
5
1
1
1
1
4
4
4
1
1
1
1
1
1
2
0
2
2
1
2
1
1
1
1
0
1
1
1
1
1
1
0
1
1
4
1
1
0
1
1
1
1
1
1
4
4
1
1
1
1
1
1
4
4
4
4
4
4
1
1
1
1
1
1
1
1
1
1
4
4
4
4
4
4
1
1
1
1
0
0
0
1
1
1
1
1
1
4
1
0
1
2
1
1
1
1
1
1
4
0
1
1
1
1
0
2
5
1
1
1
1
1
1
1
1
1
1
1
4
1
2
1
2
1
1
0
1
1
4
1
4
0
1
1
4
1
1
1
1
5
1
5
13
5
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
4
4
4
4
4
4
4
1
1
1
1
1
1
4
0
5
0
0
1
1
1
1
1
1
0
13
0
1
1
4
1
4
0
1
1
4
1
4
0
1
1
4
1
4
2
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
3
3
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
0
1
0
1
1
1
1
1
5
1
2
2
1
0
1
1
1
1
1
1
1
5
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
3
1
2
1
1
1
2
2
1
1
1
1
1
1
0
0
0
0
1
3
3
3
1
1
2
1
1
1
1
3
1
1
2
2
1
1
1
1
1
1
1
0
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
2
2
1
1
1
2
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
2
2
1
1
1
1
0
1
0
2
1
1
1
1
1
1
1
1
1
0
2
2
1
1
1
1
1
0
2
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
0
0
0
1
1
1
1
2
0
0
1
1
2
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
0
2
0
0
1
1
1
1
1
1
1
0
0
1
0
0
2
0
0
1
1
1
1
1
1
0
1
1
2
0
1
0
2
1
5
1
2
1
1
1
1
1
1
0
2
4
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
2
1
1
1
1
1
1
2
2
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
0
0
1
1
5
1
1
2
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
2
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
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
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
4
1
1
1
0
1
1
1
4
1
1
1
1
1
1
4
4
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
2
1
2
1
1
2
1
1
2
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
2
1
2
1
1
1
1
1
2
1
0
1
1
1
1
1
1
2
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
2
5
1
5
2
1
1
1
1
1
1
1
1
5
13
0
1
1
1
1
1
1
2
0
0
0
1
0
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
6
6
0
1
2
1
1
1
1
1
1
1
1
1
4
2
2
1
1
1
1
1
1
1
1
1
1
1
4
1
0
0
0
36
1
1
1
1
1
1
1
1
1
1
1
1
6
2
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
1
1
1
3
0
1
0
0
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
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
13
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
2
1
2
2
1
1
0
1
0
1
1
4
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
0
1
1
0
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
0
1
1
1
1
1
1
1
1
1
5
1
1
0
0
1
1
1
1
1
1
2
1
1
2
0
1
0
2
1
2
1
1
1
1
1
1
1
1
1
1
1
0
1
2
0
1
1
2
1
1
1
4
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
2
0
0
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
5
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
2
1
2
5
1
1
0
0
2
1
1
1
1
1
1
1
1
16
1
1
1
1
4
4
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
0
2
1
13
1
2
0
1
2
5
1
0
0
1
1
1
1
1
1
1
1
1
2
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
0
1
4
4
1
1
1
1
2
1
1
4
4
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
2
1
1
1
2
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
0
4
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
4
4
0
29
4
1
1
1
4
1
4
1
4
1
4
4
4
1
1
1
1
1
1
1
1
1
1
1
1
4
4
4
4
4
4
4
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
0
0
4
4
4
4
0
0
1
1
1
1
1
1
1
1
5
1
4
4
4
4
4
4
1
1
1
1
1
1
4
4
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
4
1
1
1
1
1
2
1
1
0
2
1
4
1
4
1
1
1
0
1
1
1
1
1
1
4
1
0
0
1
1
1
2
1
2
1
2
1
2
2
4
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
4
1
3
3
3
2
0
0
1
1
0
1
1
1
0
4
1
1
1
1
1
1
5
1
1
1
1
1
1
4
4
4
1
0
2
2
1
1
1
1
1
1
0
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
5
0
0
0
1
1
1
1
1
1
4
2
1
2
1
1
1
1
1
1
4
5
1
2
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
4
2
2
1
1
1
4
0
1
3
3
1
3
1
1
7
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
3
0
0
3
3
3
3
3
3
3
3
3
3
2
2
1
1
1
1
1
1
1
1
1
1
1
5
0
0
0
3
3
3
1
1
0
0
1
1
1
1
1
1
1
9
2
1
0
1
9
2
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
2
2
1
2
2
1
1
2
1
1
1
1
1
1
1
0
1
2
2
1
0
2
2
2
0
0
1
1
1
1
1
2
1
0
2
0
0
1
1
1
1
1
1
1
1
1
1
1
2
0
0
1
1
1
1
1
1
5
1
1
1
1
1
1
2
2
2
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
4
37
4
4
0
4
1
1
1
1
1
1
1
1
0
0
1
2
0
0
1
1
0
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
0
0
1
1
1
1
4
4
4
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
2
2
1
2
2
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
13
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
5
0
0
1
1
1
1
4
1
1
1
1
1
1
4
1
1
1
1
1
2
2
5
1
1
1
2
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
2
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
5
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
2
0
1
1
1
1
1
1
5
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
5
13
0
1
1
1
1
1
1
2
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
5
5
5
5
13
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
6
13
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
2
2
1
1
1
1
0
1
1
1
1
1
1
5
0
0
0
1
1
1
1
1
1
2
2
1
1
1
1
0
1
1
1
1
1
1
5
0
0
0
8
8
1
2
1
1
1
1
1
1
1
1
1
4
1
2
1
1
1
1
1
1
1
1
1
0
0
0
0
6
1
1
1
1
1
1
6
0
1
0
1
1
1
6
0
1
1
0
1
1
1
1
0
0
1
1
2
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
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
0
1
1
1
2
0
1
0
2
1
5
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
13
5
0
1
1
5
1
5
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
1
2
1
1
1
0
0
1
1
1
0
1
1
2
2
2
1
0
5
13
0
1
1
1
1
1
1
5
1
1
0
1
0
1
1
1
1
2
1
1
0
1
1
4
1
1
1
1
2
1
1
1
0
1
1
1
1
1
1
1
2
1
2
1
2
1
2
0
1
1
1
2
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
4
1
1
1
1
1
1
0
1
1
0
13
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
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
1
1
1
1
1
1
1
1
1
1
1
1
0
13
0
0
1
1
1
1
0
1
1
1
1
1
2
0
5
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
2
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
13
13
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
1
0
13
0
0
5
1
1
1
1
13
13
0
5
5
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
4
4
4
1
4
4
4
1
1
1
1
4
1
1
4
1
1
1
1
1
1
2
4
4
1
4
1
1
1
1
1
1
0
1
4
4
4
4
0
1
0
1
1
1
4
1
1
4
1
0
2
0
1
1
1
1
4
1
1
4
4
0
2
1
1
1
1
1
1
4
2
4
0
4
1
1
4
1
1
4
1
1
4
13
1
0
1
5
1
1
0
0
1
4
1
4
1
1
1
1
4
1
1
1
1
1
1
4
4
0
1
1
0
0
4
1
1
1
1
1
1
4
4
0
1
1
0
0
1
1
1
1
2
1
1
1
1
1
1
0
0
4
4
0
1
2
1
1
2
1
1
1
1
1
1
4
0
1
1
1
1
1
1
1
1
1
2
1
1
4
4
0
4
4
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
4
4
4
4
4
4
4
4
4
4
4
4
0
1
2
1
0
2
1
0
4
2
4
5
4
4
0
0
1
1
1
1
1
1
2
1
1
1
1
2
2
1
1
2
1
1
1
1
1
2
1
2
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
0
2
0
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
1
7
0
1
0
1
0
1
2
1
1
1
1
2
1
1
5
1
1
1
1
1
2
0
0
1
0
1
0
0
0
1
1
2
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
5
13
5
1
1
0
2
1
0
1
0
1
1
1
1
1
1
1
5
2
2
2
1
1
2
2
1
0
5
0
1
3
3
3
2
0
5
0
1
3
3
3
1
5
1
1
1
1
1
1
1
1
2
1
1
1
1
2
2
1
1
1
2
1
1
0
2
1
1
1
1
3
3
1
2
1
1
2
1
2
0
0
2
1
1
2
0
1
1
0
1
0
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
5
1
2
1
1
2
2
1
2
2
1
1
2
1
0
1
1
1
1
1
1
1
1
1
1
5
0
0
0
2
4
1
0
2
1
1
1
1
1
1
0
2
0
0
2
1
1
1
1
1
1
0
1
2
0
1
0
0
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
1
2
1
1
0
1
1
2
2
1
1
1
1
1
0
1
1
1
2
1
1
1
2
1
1
2
1
1
0
0
0
1
2
2
0
1
0
5
0
1
1
1
1
1
1
5
0
0
2
4
2
1
2
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
4
0
0
1
1
4
4
0
1
2
0
1
1
1
1
1
1
2
0
0
1
1
0
6
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
2
1
1
1
1
1
1
4
5
0
0
1
1
1
1
1
1
2
2
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
2
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
2
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
2
0
1
1
1
3
1
1
1
1
3
3
4
1
1
4
0
0
1
1
1
0
1
0
1
1
1
1
1
4
2
2
1
1
1
1
1
0
0
1
3
3
3
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
2
0
0
1
6
6
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
5
0
1
1
1
1
1
1
4
2
1
0
2
1
1
1
1
1
1
1
1
1
5
0
0
2
1
1
1
1
5
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
0
4
3
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
4
1
1
1
4
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
5
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
0
2
0
1
0
1
1
1
1
1
1
4
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
5
1
2
1
1
1
1
1
1
2
5
13
0
1
1
1
1
1
1
2
0
0
0
1
1
0
1
1
1
2
1
1
1
1
4
4
2
2
1
1
1
1
1
0
1
4
2
1
1
1
1
1
1
1
1
1
9
11
3
3
3
3
12
1
1
1
1
1
1
5
0
0
0
0
0
12
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
0
0
5
0
0
0
5
0
0
0
8
8
1
1
1
1
1
1
5
0
0
0
5
0
0
0
8
8
5
0
0
5
0
0
0
0
0
0
8
8
1
1
1
1
1
1
5
0
0
0
5
0
0
0
0
0
8
8
1
1
1
0
0
8
1
1
1
1
1
1
5
0
0
0
1
1
8
2
1
1
1
1
1
5
0
0
2
1
0
2
2
2
1
1
1
1
0
1
0
1
0
1
1
3
3
3
8
13
0
0
0
1
0
2
1
1
2
1
1
1
1
1
1
1
1
2
2
0
0
0
0
1
1
2
1
1
1
1
1
1
0
0
1
2
0
0
0
2
1
1
2
1
5
2
0
17
6
6
6
1
1
6
1
0
6
6
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
6
1
1
1
1
1
1
1
1
1
1
1
6
1
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
4
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
1
1
1
1
2
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
2
1
1
1
1
0
1
1
2
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
2
1
5
0
0
1
0
1
0
2
1
1
1
1
1
1
1
1
1
1
2
0
1
1
1
1
2
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
2
2
0
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
2
0
1
34
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
5
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
4
4
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
13
0
0
0
13
0
0
0
0
1
1
1
1
1
1
0
1
1
1
2
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
2
2
1
1
1
2
2
1
1
1
2
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
2
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
2
1
2
1
1
1
1
0
1
0
1
0
1
1
0
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
5
0
0
0
1
1
1
1
1
1
1
1
2
0
0
2
0
0
1
1
1
1
1
4
1
1
1
2
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
2
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
5
1
2
2
2
1
2
1
1
2
1
0
0
1
0
0
4
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
5
1
1
1
2
1
1
1
1
1
1
1
1
1
1
6
1
1
2
1
1
1
1
1
1
1
1
1
13
3
3
3
3
3
3
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
4
2
0
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
9
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
2
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
0
0
0
0
5
1
1
0
2
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
13
0
1
1
5
5
1
1
5
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
1
4
1
1
1
1
1
1
2
1
1
1
1
1
4
1
1
1
1
1
1
1
1
2
2
2
1
1
0
0
4
1
1
0
2
0
5
1
4
1
1
1
2
1
1
0
1
1
1
1
0
1
1
0
4
4
1
1
4
4
4
1
1
1
1
1
1
1
4
4
4
1
4
4
4
0
1
0
1
4
4
1
1
1
1
1
1
1
1
1
1
1
1
4
4
4
4
1
1
1
1
1
1
0
1
1
0
0
1
4
2
1
2
1
2
1
4
4
4
4
1
2
1
2
1
2
2
1
1
1
2
1
1
1
0
1
0
1
4
4
1
1
4
4
1
1
1
0
0
1
1
1
4
1
1
1
1
1
1
4
1
4
1
2
1
1
4
4
1
1
0
13
0
1
1
4
0
1
1
4
2
1
1
1
1
1
1
1
0
1
1
1
1
2
2
1
1
1
2
1
1
2
0
1
1
1
1
1
1
1
2
1
2
2
1
2
1
0
0
1
1
1
1
1
1
0
1
1
1
2
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
2
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
4
1
0
1
1
1
4
1
1
1
1
1
1
1
1
1
0
1
2
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
2
2
2
1
1
2
2
1
13
5
0
5
0
1
1
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
2
2
2
1
1
2
2
1
1
1
1
1
1
1
3
3
2
0
0
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
2
1
1
2
2
2
2
2
1
1
2
2
1
1
1
1
1
1
2
2
1
2
1
0
1
2
1
1
2
1
1
2
1
1
1
1
1
0
2
4
4
4
0
4
1
1
1
1
1
1
2
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
5
0
0
0
2
2
1
1
1
1
1
1
5
0
0
0
2
1
2
1
1
1
1
1
4
1
1
2
1
2
1
2
1
2
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
2
1
1
2
1
1
2
1
1
2
1
2
1
2
1
1
1
1
1
1
0
5
0
0
0
0
13
0
1
1
1
2
2
1
1
4
1
1
4
0
1
1
1
1
1
1
0
0
0
0
0
0
0
2
1
1
1
1
0
1
2
2
1
0
2
0
1
1
0
1
2
0
0
1
1
1
1
4
1
1
1
1
1
1
2
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
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
0
1
0
1
0
0
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
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
4
1
1
0
2
0
1
1
1
1
2
1
1
2
2
2
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
2
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
2
1
1
1
1
1
1
1
1
5
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
5
13
0
1
0
1
1
1
5
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
2
1
2
2
1
0
2
1
0
1
0
1
1
1
1
1
1
1
1
0
1
2
1
1
0
1
1
4
2
4
1
2
1
1
2
1
1
1
1
1
2
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
2
1
1
1
1
0
1
1
0
2
2
1
1
1
1
1
1
1
1
1
1
0
0
0
0
5
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
2
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
0
1
1
0
5
1
2
1
1
1
1
1
1
1
2
1
1
1
2
5
5
13
0
1
1
1
1
1
1
2
0
0
0
1
0
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
0
1
13
0
1
0
6
6
4
4
0
0
1
1
2
1
1
1
1
1
1
4
2
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
2
5
1
1
1
1
1
1
1
5
5
2
0
1
1
1
1
2
0
1
1
1
1
2
0
1
1
1
1
5
5
2
5
1
1
1
1
1
1
1
5
5
2
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
2
4
1
1
1
1
1
1
1
2
2
2
2
1
4
0
1
1
1
1
1
1
1
2
2
2
1
5
13
5
0
1
0
1
2
1
1
1
1
1
1
0
5
1
0
5
1
3
3
1
1
1
1
1
3
3
3
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
13
5
0
0
4
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
2
2
1
1
1
1
1
1
1
0
0
1
2
1
1
1
1
1
1
5
1
0
1
1
1
0
0
0
1
0
1
1
2
1
1
1
1
1
1
1
1
0
2
2
1
1
1
1
1
1
1
1
5
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
2
1
5
1
1
1
1
1
1
4
0
1
1
1
1
1
1
2
0
1
0
1
1
0
1
0
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
5
0
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
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
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
8
8
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
0
0
0
1
0
1
1
1
0
13
0
0
0
1
1
2
1
2
1
1
1
1
5
1
0
1
1
2
1
1
1
1
0
1
1
1
0
1
8
1
1
1
2
2
1
1
1
1
2
0
0
0
0
3
3
3
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
6
6
6
6
2
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
0
5
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
5
1
2
2
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
1
1
1
1
1
1
1
0
1
4
4
1
2
2
1
1
1
1
1
1
1
1
0
1
0
2
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
3
3
3
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
4
4
4
4
4
1
1
1
1
4
1
4
1
1
1
0
5
0
0
1
4
4
4
4
4
1
1
1
1
1
1
4
4
4
4
2
0
0
0
1
1
4
1
4
1
4
1
1
4
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
2
1
1
1
1
1
1
1
1
1
1
0
1
1
1
2
0
0
2
2
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
2
1
2
1
1
1
0
2
1
1
0
1
1
0
0
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
1
2
1
1
5
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
2
1
1
1
1
0
1
1
1
1
0
0
5
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
2
0
1
3
3
3
2
1
1
1
1
1
1
0
2
1
1
1
1
1
1
0
5
5
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
13
5
0
0
0
1
1
1
1
2
0
1
1
1
1
1
1
1
1
1
8
8
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
0
0
0
1
0
1
1
1
0
13
0
0
0
1
2
2
2
1
1
1
2
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
8
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
0
0
1
1
1
1
1
0
0
1
1
1
2
1
1
1
0
0
1
1
0
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
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
5
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
5
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
2
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
0
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
4
1
2
1
1
1
1
1
1
1
2
1
1
0
0
1
1
1
1
1
1
4
0
1
1
1
1
1
1
1
1
1
1
4
0
1
1
4
4
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
2
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
2
1
1
1
1
1
1
1
0
0
1
1
0
1
1
2
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
2
2
5
1
1
1
0
2
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
2
2
2
1
5
13
5
0
1
0
1
1
1
3
3
3
0
0
0
5
1
2
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
3
2
1
5
2
2
2
1
1
1
1
1
1
1
1
2
1
2
1
1
1
2
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
4
1
1
0
1
1
1
1
2
1
0
1
1
1
2
1
1
1
1
2
1
1
1
2
1
1
0
1
4
4
0
4
1
1
1
1
1
2
2
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
3
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
3
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
17
0
0
1
1
1
1
1
1
1
1
1
1
24
4
1
1
1
1
1
1
4
4
0
8
5
2
2
1
1
1
1
1
1
2
1
1
0
0
0
8
1
0
0
1
5
2
1
1
1
2
2
1
1
1
2
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
0
2
0
0
1
1
1
1
1
1
1
1
1
1
2
0
0
2
1
2
1
1
1
1
1
1
1
1
5
6
0
6
6
6
6
6
6
6
6
0
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
0
0
1
1
1
1
1
1
6
1
1
1
0
0
1
1
0
1
1
1
2
1
0
0
0
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
5
2
1
2
2
1
1
0
2
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
13
0
0
0
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
1
1
2
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
0
1
1
1
2
1
1
1
1
1
0
1
1
1
1
2
1
0
0
1
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
0
1
13
1
1
5
1
5
1
0
0
0
1
1
4
1
1
1
1
1
1
1
1
5
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
2
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
0
1
0
0
0
0
0
2
1
0
1
1
1
1
0
1
4
0
1
2
1
1
1
1
1
1
5
1
1
1
4
4
4
39
4
4
2
1
1
1
1
1
1
0
0
4
4
4
4
2
1
1
1
1
1
1
4
2
4
1
1
1
1
1
1
1
1
1
0
1
2
1
0
1
1
1
1
1
1
4
1
1
0
0
1
0
0
2
1
1
1
1
1
1
4
4
1
1
0
1
1
1
1
1
4
1
1
1
1
1
0
1
2
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
4
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
4
4
4
4
4
1
1
1
1
0
2
1
1
1
1
1
1
4
0
1
0
1
0
1
1
1
1
1
1
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
5
1
2
2
1
0
1
1
1
1
1
1
1
1
1
5
0
0
2
1
1
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
1
2
1
2
1
1
1
1
1
1
0
4
2
3
3
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
3
3
3
3
3
3
2
0
0
0
0
5
5
1
1
1
0
1
2
1
1
1
5
0
1
0
1
2
1
1
1
1
1
1
1
1
1
1
1
1
3
2
1
1
1
1
1
1
2
1
1
1
1
1
1
2
1
2
1
1
1
1
1
1
1
1
5
1
2
1
1
1
1
1
1
2
1
1
1
1
1
2
2
2
1
1
2
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
0
2
0
0
2
0
0
1
1
1
1
1
1
2
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
2
5
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
2
9
1
1
1
1
1
1
0
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
2
2
2
1
5
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
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
0
1
1
0
0
1
1
1
1
1
0
2
1
1
4
1
1
1
1
0
0
0
1
1
1
1
1
4
4
1
4
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
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
0
0
0
1
1
0
1
0
0
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
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
3
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
2
1
1
2
2
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
4
0
1
1
0
0
0
1
0
1
0
1
0
1
15
32
4
4
5
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
8
5
1
2
1
1
1
1
1
1
5
8
8
1
1
1
1
1
1
5
0
0
0
1
1
1
1
1
1
1
1
8
1
1
1
1
1
1
2
1
1
1
1
1
1
2
0
0
2
0
0
5
0
0
0
2
1
1
1
1
1
1
8
5
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
0
0
2
0
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
2
0
1
1
0
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
6
6
6
6
6
6
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
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
1
2
2
1
1
1
0
2
2
1
1
2
1
1
7
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
4
1
4
1
1
1
2
1
5
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
1
2
1
1
2
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
2
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
2
1
2
5
1
1
1
1
1
1
1
1
2
1
0
0
0
0
1
2
2
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
5
1
1
0
1
2
0
0
1
1
1
2
0
1
2
5
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
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
16
1
1
1
1
4
4
4
1
1
1
1
1
1
1
1
2
2
2
1
3
3
3
0
0
5
1
3
3
3
0
0
5
1
1
1
1
0
1
1
0
13
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
2
2
1
1
0
1
1
1
1
0
2
0
1
1
1
1
1
1
1
1
1
13
5
0
0
0
1
1
1
1
2
2
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
0
4
1
1
1
1
1
2
1
1
1
1
1
1
2
1
1
1
4
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
2
2
0
0
0
0
1
2
0
1
1
1
1
4
1
1
1
1
1
1
1
0
1
1
1
0
1
2
1
1
4
1
1
1
2
1
2
1
2
2
2
1
1
1
1
1
4
1
1
1
4
1
4
1
4
1
4
4
4
1
1
1
1
0
0
1
1
1
4
3
3
3
1
1
1
1
1
1
1
1
1
3
3
3
3
1
4
1
1
1
1
1
1
4
4
4
4
2
0
0
0
1
1
1
1
1
1
4
4
4
2
2
1
2
1
1
0
1
0
1
1
1
1
1
1
1
1
4
4
1
1
0
1
1
4
1
1
1
1
4
4
1
1
1
1
1
1
4
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
4
4
2
2
13
0
0
0
4
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
2
1
1
1
2
1
2
1
2
1
1
2
1
2
1
1
1
1
2
1
1
1
1
1
1
0
1
1
1
1
1
2
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
2
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
5
0
0
2
1
1
1
1
1
1
4
4
2
2
1
2
1
1
3
3
1
0
11
3
3
3
3
1
1
1
1
1
1
1
2
1
1
2
1
1
2
1
2
1
1
1
1
1
1
0
4
2
3
3
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
3
3
3
0
0
0
5
1
0
1
0
1
1
1
1
1
9
9
9
5
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
2
2
1
2
1
2
1
2
1
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
1
1
2
1
1
1
2
1
2
0
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
0
0
1
2
2
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
2
2
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
9
9
9
2
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
2
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
2
1
1
2
2
1
1
1
13
0
1
5
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
1
2
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
1
0
0
2
1
1
1
2
1
0
1
1
0
1
1
1
0
1
1
1
4
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
2
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
0
2
6
0
0
2
1
2
2
1
1
1
1
1
1
0
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
5
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
4
1
1
1
2
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
2
2
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
5
0
0
0
1
1
0
1
1
0
1
1
0
2
13
5
0
2
0
1
1
1
1
1
1
1
1
1
1
1
2
0
0
13
13
5
5
1
5
5
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
2
4
0
1
1
1
4
13
1
0
1
0
1
0
1
0
4
5
0
0
0
0
32
1
1
1
1
1
1
5
0
0
0
2
2
1
1
1
1
1
1
1
1
5
0
0
0
0
1
1
1
1
8
8
0
2
0
8
1
5
0
0
0
1
5
8
1
1
1
1
0
1
1
4
0
1
4
0
1
1
1
8
27
4
4
4
4
2
2
1
1
1
1
1
1
5
0
0
0
1
1
2
2
1
2
1
1
1
5
1
1
2
1
2
1
1
1
0
1
1
2
0
0
0
2
0
0
1
1
1
1
2
1
2
5
1
1
0
2
1
1
2
1
5
2
0
1
0
0
1
1
0
0
1
1
0
0
1
30
1
6
6
1
6
6
1
1
1
1
1
1
6
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
1
3
3
3
0
0
5
1
3
3
3
0
0
5
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
5
1
2
1
1
1
1
5
1
1
1
4
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
2
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
1
1
1
1
1
1
1
5
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
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
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
13
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
1
1
1
5
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
0
0
1
1
1
5
13
0
1
1
1
1
1
1
5
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
2
1
1
1
1
1
1
1
2
0
2
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
1
1
1
1
1
1
1
2
0
0
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
0
1
0
0
1
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
2
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
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
5
5
1
1
1
1
1
1
0
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
0
2
5
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
7
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
2
7
0
1
1
0
1
1
0
1
1
7
0
1
1
0
1
1
0
1
1
0
1
1
4
1
1
2
2
1
2
1
1
2
1
2
2
0
2
4
1
1
1
2
1
2
1
2
2
2
1
1
1
1
1
4
2
0
4
2
1
1
1
1
2
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
2
0
0
1
4
1
1
1
1
1
1
4
4
4
4
4
4
2
27
2
4
4
1
0
0
1
1
1
4
4
4
1
1
1
1
1
1
0
1
1
4
4
4
2
1
1
1
1
2
1
1
1
4
1
1
1
1
0
0
1
0
1
1
1
1
1
1
4
4
2
1
1
1
1
1
1
4
2
4
13
1
1
0
1
1
1
1
5
0
0
4
4
4
1
1
2
0
0
1
1
1
1
4
1
4
1
4
1
2
2
2
1
2
1
1
1
1
1
1
1
1
1
4
1
1
1
1
4
1
1
1
1
1
1
1
2
1
0
1
0
2
1
1
1
1
1
1
4
1
1
1
1
1
1
4
0
1
1
1
1
1
1
2
0
0
2
2
1
1
1
1
2
1
2
5
0
0
2
1
1
1
1
1
1
4
4
0
1
1
3
1
1
1
1
1
1
1
2
0
1
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
0
2
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
2
1
1
1
2
1
1
1
1
1
0
1
0
2
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
2
1
1
0
0
2
1
1
1
7
0
1
0
1
0
1
1
1
1
2
2
1
1
1
7
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
7
0
1
0
1
0
1
1
1
1
1
1
1
6
6
6
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
2
1
1
2
1
1
1
2
1
1
1
1
1
1
0
13
0
1
1
4
4
0
1
0
1
13
1
1
1
0
5
2
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
2
2
2
1
1
2
2
1
1
1
1
1
1
1
1
5
2
2
2
1
1
2
2
1
2
1
1
1
1
1
1
1
1
1
1
1
13
3
3
3
3
3
3
1
1
1
1
1
1
1
0
0
3
3
3
3
3
3
3
3
3
3
3
3
3
0
1
1
1
2
1
0
2
3
0
1
1
1
2
1
0
2
3
2
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
0
1
2
1
1
3
3
3
1
1
1
1
1
2
1
1
1
3
3
3
0
2
0
1
1
1
2
0
0
1
2
1
6
1
0
1
1
2
1
1
1
1
1
1
1
2
1
0
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
2
2
1
1
1
1
1
2
2
2
1
2
1
2
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
2
0
5
0
0
0
40
0
0
0
0
1
1
1
1
1
1
1
0
1
2
0
1
0
0
1
1
1
1
1
1
1
1
0
1
2
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
2
0
0
0
1
1
1
1
1
1
2
2
0
0
0
1
1
1
1
1
2
0
0
1
1
2
0
0
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
2
0
0
2
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
2
1
1
1
1
1
1
1
1
0
1
0
1
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
2
1
1
1
1
1
1
1
0
1
1
0
2
1
1
1
1
2
4
1
1
1
1
1
1
1
1
1
1
1
1
4
1
0
0
2
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
2
2
2
2
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
2
1
1
1
1
1
1
0
1
1
2
0
1
0
2
5
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
2
1
2
1
1
1
2
1
2
2
1
1
1
1
0
1
0
0
2
2
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
2
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
2
2
1
1
1
1
0
0
1
1
1
2
1
1
1
1
2
1
1
1
0
0
1
1
4
1
1
2
1
1
1
1
1
1
1
1
1
1
0
0
1
1
4
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
2
1
1
1
1
1
4
1
3
3
3
1
1
0
0
1
5
1
1
1
1
1
0
1
1
1
1
0
1
2
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
4
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
4
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
2
1
1
1
1
1
1
3
3
3
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
0
1
0
1
1
3
1
1
1
0
1
1
4
1
1
0
0
1
1
1
1
1
1
0
0
1
5
1
0
0
1
5
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
2
2
5
5
1
1
1
1
1
1
1
1
2
0
1
2
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
0
2
0
1
0
1
0
1
1
1
1
1
4
4
4
4
1
1
1
1
0
2
5
0
0
1
1
1
1
0
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
13
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
2
4
4
1
1
1
1
1
1
1
0
0
2
5
1
1
1
1
0
0
4
4
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
2
1
2
1
1
1
1
2
5
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
4
4
0
0
1
1
1
1
1
4
4
1
4
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
2
0
1
1
1
1
5
0
0
1
2
2
1
1
1
0
1
1
1
0
1
2
2
0
0
1
2
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
0
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
2
1
1
1
1
1
1
1
0
1
2
1
1
1
1
1
1
1
1
0
0
1
1
2
1
1
2
1
1
0
1
1
2
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
2
1
2
1
1
1
5
1
1
1
1
1
1
1
5
1
1
1
1
1
5
1
1
1
5
1
1
1
1
1
1
1
1
0
0
1
1
2
1
1
1
1
1
1
1
1
1
0
1
1
1
1
6
2
1
1
1
1
1
1
1
1
6
2
2
1
1
1
1
1
1
1
1
1
6
1
1
2
1
1
1
0
1
1
1
1
0
4
1
1
2
1
1
1
1
1
4
2
1
1
1
1
1
1
1
1
4
2
2
1
1
1
1
1
1
1
1
4
1
1
1
1
2
2
0
0
0
0
1
1
1
1
1
1
0
0
0
0
32
8
1
1
1
1
1
1
1
2
9
1
1
1
1
1
1
1
1
1
1
2
9
1
0
0
2
1
1
1
1
1
1
1
12
1
2
1
1
1
1
5
2
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
12
1
0
0
1
41
1
0
0
1
8
2
2
2
8
8
8
2
2
1
1
1
1
0
0
0
1
1
1
1
1
1
5
0
0
0
2
2
1
1
1
1
1
1
5
0
0
0
8
8
8
2
2
1
1
1
1
0
0
0
1
1
1
1
1
1
5
0
0
0
2
2
1
1
1
1
1
1
5
0
0
0
1
1
1
1
1
1
2
2
1
1
1
1
1
1
5
0
0
0
1
1
1
1
0
5
0
0
0
1
1
1
1
5
0
0
0
8
8
8
8
8
26
0
0
0
8
8
5
1
2
1
1
2
1
5
5
5
5
1
1
1
1
1
2
2
1
1
1
1
5
0
0
0
1
1
1
0
1
1
1
1
0
0
0
8
8
1
1
1
0
0
8
8
1
1
1
1
1
1
0
5
0
0
0
0
1
1
1
1
1
1
1
1
1
1
8
5
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
8
8
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
5
0
0
0
8
1
0
1
0
1
1
1
1
1
9
5
0
0
2
1
0
2
2
1
2
1
2
1
0
1
1
1
8
1
1
1
1
1
1
1
1
1
1
5
0
0
0
2
0
2
2
1
1
1
1
1
1
1
3
3
3
8
8
1
1
0
1
0
0
1
1
1
1
1
1
2
1
1
0
2
1
0
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
0
8
2
0
2
0
0
0
0
0
5
5
0
0
0
2
2
1
1
1
2
2
1
1
1
2
0
0
0
0
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
3
3
3
2
0
0
2
1
1
1
1
1
1
0
1
1
1
1
1
1
1
2
2
2
0
0
0
2
1
1
1
1
1
1
0
0
2
1
1
0
0
1
0
1
1
2
0
0
1
0
0
1
19
1
0
0
1
1
1
1
1
1
1
6
6
6
0
1
1
1
1
1
1
1
1
1
6
6
0
1
1
1
1
1
1
1
1
1
6
6
0
1
1
1
1
1
1
6
1
1
6
1
1
1
1
6
1
6
1
2
5
1
1
1
1
1
1
1
6
0
1
1
1
1
1
1
1
1
1
1
1
1
6
6
6
6
6
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
6
4
1
6
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
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
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
2
0
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
0
5
0
1
3
3
3
2
0
5
0
1
3
3
3
7
0
0
0
7
1
1
1
0
1
1
1
7
0
7
1
1
1
2
2
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
2
2
2
1
5
2
1
1
1
1
1
1
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
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
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
7
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
2
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
2
5
0
0
1
0
1
0
2
1
1
2
1
0
1
0
2
5
1
1
1
1
0
1
1
1
0
2
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
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
13
5
0
1
1
5
1
5
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
34
0
0
0
0
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
5
1
1
1
0
1
1
2
1
1
1
1
1
2
1
1
1
1
1
0
0
1
1
1
4
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
2
2
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
2
2
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
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
0
1
1
1
1
1
1
1
1
1
0
1
0
1
2
2
1
1
1
1
2
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
5
13
0
1
2
1
2
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
0
5
0
1
1
1
1
1
1
1
2
1
0
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
0
1
1
1
1
1
1
1
1
0
0
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
1
2
2
1
1
1
0
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
1
2
1
1
2
1
1
2
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
2
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
2
5
0
0
1
1
1
1
2
1
1
2
0
7
0
0
0
1
2
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
2
1
5
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
4
1
1
1
1
1
1
0
1
1
0
13
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
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
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
2
1
0
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
4
4
4
32
1
1
1
1
1
1
1
1
2
2
13
2
2
2
5
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
13
0
0
1
1
1
1
0
1
1
1
1
13
5
5
5
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
0
1
1
5
1
2
1
1
2
1
1
2
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
0
1
1
0
13
0
1
1
0
1
1
0
1
1
1
1
4
5
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
1
1
4
1
2
1
1
1
4
1
4
2
1
1
1
1
1
2
1
1
1
1
1
5
1
1
2
1
1
4
1
1
1
1
1
1
1
1
1
1
1
2
0
1
1
1
0
1
4
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
2
1
1
1
1
4
2
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
4
2
1
1
1
1
1
1
4
1
1
1
1
1
1
2
0
1
4
1
1
1
2
1
0
1
1
1
1
1
0
4
1
1
1
2
1
1
0
1
1
1
1
0
1
1
0
4
4
42
4
4
4
43
4
1
1
1
0
0
1
1
1
1
7
4
4
4
4
1
1
1
1
1
1
1
1
1
0
4
1
4
4
1
2
1
1
1
1
1
1
1
4
4
2
5
1
1
1
0
4
1
4
1
1
1
1
1
1
4
4
4
4
4
2
1
4
1
4
1
4
1
4
1
4
1
1
1
1
1
1
2
4
4
4
4
4
4
1
1
1
1
1
1
0
1
4
4
4
4
4
1
1
1
1
1
1
1
0
0
4
2
1
1
1
1
1
1
4
4
1
1
0
1
1
1
1
1
0
1
1
0
1
4
1
1
1
1
1
1
1
1
4
0
1
1
0
1
1
4
4
4
4
1
1
1
1
1
1
2
1
1
1
1
1
1
4
4
4
1
0
0
1
0
1
1
1
1
1
1
4
4
1
1
1
0
0
1
0
1
1
1
1
1
1
4
4
1
1
0
1
1
1
1
4
1
1
1
1
1
1
4
4
0
1
1
0
0
1
4
1
1
1
1
1
1
4
0
1
1
1
1
1
1
4
4
0
1
0
0
1
1
1
1
1
1
1
4
1
1
1
1
1
1
4
0
5
0
1
1
1
1
1
1
4
0
1
1
1
1
1
1
4
1
1
1
1
1
1
4
4
1
3
3
3
4
1
1
4
1
1
1
4
1
4
1
1
1
1
4
4
2
2
1
2
2
2
1
1
2
2
1
1
2
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
4
4
4
4
4
0
1
1
1
1
1
1
1
0
1
1
4
0
1
4
1
1
1
1
1
0
1
1
1
1
1
1
2
1
0
2
1
1
1
1
1
1
4
4
0
1
1
1
3
3
3
3
3
3
3
3
4
1
1
1
1
1
1
5
1
1
1
1
1
1
4
4
4
2
1
2
1
2
1
2
2
1
1
1
4
1
1
1
2
1
0
1
1
1
1
1
1
1
1
1
2
1
1
4
4
0
4
4
1
1
2
1
1
1
1
2
1
1
1
1
1
1
4
0
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
2
2
1
1
1
1
1
0
0
2
1
1
4
4
1
1
1
1
4
1
1
1
1
1
1
4
1
4
3
13
4
4
4
4
4
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
2
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
2
0
1
1
1
1
1
1
2
2
1
1
1
2
1
1
1
1
1
2
1
1
2
1
1
1
1
1
2
1
1
0
1
1
1
2
1
1
1
1
2
1
1
0
1
2
2
0
1
2
2
1
1
1
1
0
0
2
1
1
2
0
1
1
1
1
0
1
0
1
2
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
2
1
1
1
1
3
3
3
1
1
1
0
0
1
0
0
7
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
2
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
2
1
1
1
1
1
1
1
1
1
1
3
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
4
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
5
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
1
3
3
3
1
1
1
1
4
1
1
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
9
1
9
9
1
1
1
1
1
1
2
1
1
1
1
1
1
2
1
1
1
2
2
1
2
1
1
1
1
2
2
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
2
0
0
1
2
2
1
0
2
2
2
1
0
1
2
1
1
2
1
2
1
0
2
1
1
2
0
2
1
0
0
1
1
2
1
5
1
5
2
1
2
2
0
0
5
0
0
1
1
1
1
1
2
1
1
0
1
2
1
1
1
1
1
1
2
0
1
2
1
1
1
1
1
1
4
4
4
1
1
1
1
1
2
1
0
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
0
1
1
1
1
1
1
2
1
0
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
5
0
0
1
1
1
1
1
1
2
1
1
1
1
1
2
2
1
1
2
2
2
2
2
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
2
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
0
1
1
4
1
1
4
1
1
4
0
2
0
1
1
2
1
1
1
1
1
0
2
0
1
1
1
1
1
2
1
1
2
0
0
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
6
2
0
0
21
2
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
2
0
0
1
1
4
0
2
0
1
1
1
1
1
1
1
0
1
1
1
2
0
0
1
1
1
1
1
1
0
0
0
1
1
1
2
0
0
1
1
1
1
4
0
1
1
2
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
15
1
0
0
1
0
1
0
0
1
1
0
0
1
15
0
1
0
0
1
1
0
0
1
15
7
0
0
0
1
1
0
1
1
0
1
1
0
1
7
0
0
0
1
1
1
0
1
1
0
1
1
0
1
7
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
2
4
2
0
0
2
1
1
1
1
1
1
1
2
1
0
1
2
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
2
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
2
1
1
1
1
0
2
4
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
4
2
2
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
2
1
1
2
2
1
1
1
1
0
0
0
0
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
2
1
1
1
1
1
1
1
1
1
2
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
2
1
0
0
1
1
1
1
1
2
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
2
1
0
1
1
1
1
1
1
4
1
1
2
1
1
2
1
1
1
1
1
1
1
2
1
1
1
0
0
9
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
13
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
0
2
1
1
1
1
0
1
1
1
1
1
1
1
1
2
1
0
1
1
0
1
1
1
0
1
1
1
4
1
1
1
4
2
2
1
2
1
1
0
2
1
1
1
1
5
0
1
2
1
1
1
1
1
1
1
0
0
5
1
1
2
2
1
1
1
2
1
1
0
0
4
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
6
6
6
6
1
0
1
1
1
1
1
1
1
1
0
0
2
1
0
1
1
1
1
1
1
1
0
0
5
13
5
1
2
1
0
5
1
2
0
1
0
1
0
1
0
1
2
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
0
1
1
1
1
1
1
2
1
2
1
1
1
1
2
1
1
0
0
0
1
1
1
4
4
1
1
1
1
1
1
2
1
1
0
2
1
0
1
2
1
1
0
2
1
0
1
0
1
1
2
1
1
1
1
1
1
0
1
1
1
1
3
1
1
1
1
1
1
0
1
1
0
2
1
1
1
2
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
5
1
1
0
0
1
0
0
1
0
0
28
1
2
2
0
1
1
1
1
1
1
2
0
0
0
2
2
1
1
0
1
1
13
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
13
0
1
1
0
1
1
13
0
0
0
13
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
13
0
0
0
0
13
0
0
0
1
1
5
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
5
0
1
1
1
1
1
1
1
0
0
2
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
2
2
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
1
0
0
1
0
2
1
2
2
5
0
0
0
1
0
1
0
1
1
1
0
0
2
1
2
2
1
0
0
1
1
1
1
1
4
1
1
2
1
2
5
1
1
1
0
0
0
1
1
0
1
1
0
2
1
1
1
2
1
0
2
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
2
1
1
1
2
1
1
1
2
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
2
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
2
2
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
5
1
1
1
1
1
1
1
1
5
5
1
1
0
1
1
0
1
0
2
2
2
2
1
1
1
1
0
1
0
0
0
1
0
1
0
1
2
1
2
1
1
2
0
1
0
0
2
0
1
2
1
2
0
1
2
1
1
1
2
0
0
0
13
0
0
0
13
0
0
0
13
0
0
0
2
1
1
1
1
1
0
13
5
0
1
1
1
1
1
1
2
0
0
1
1
1
1
1
1
13
5
0
1
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
1
1
1
1
1
1
5
1
1
1
1
1
1
5
37
21
31
2
0
0
0
2
0
0
0
1
1
1
1
1
1
1
2
6
1
1
1
1
1
1
1
1
2
6
1
1
1
1
1
1
1
1
1
1
2
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
0
1
0
1
1
6
1
1
1
1
1
1
1
1
1
1
2
6
1
1
1
1
1
1
1
1
1
1
2
6
2
2
1
1
1
1
1
1
4
2
2
1
1
1
1
1
1
1
1
1
4
4
32
4
4
4
32
4
4
33
11
3
3
3
3
1
1
1
1
1
1
1
1
1
1
2
9
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
9
9
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
2
2
9
2
2
1
1
1
1
1
1
1
1
1
9
37
13
5
5
0
0
0
5
5
0
0
0
12
12
2
0
0
0
12
4
0
0
0
0
12
5
2
1
0
1
1
0
0
0
1
12
5
2
1
0
1
1
0
0
0
1
12
1
1
1
1
1
1
5
0
0
0
3
3
3
3
3
3
3
3
3
3
3
3
3
12
1
1
1
1
1
1
5
0
0
0
2
1
1
1
1
0
0
12
1
1
1
1
1
1
1
0
0
1
0
0
5
0
0
0
22
44
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
44
1
0
0
1
1
2
2
2
1
8
8
8
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
5
0
0
0
8
8
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
0
5
0
0
0
5
0
0
0
8
8
8
6
0
0
0
1
1
1
1
1
1
1
0
0
8
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
8
1
0
0
1
4
8
1
1
1
1
1
1
5
0
0
0
4
2
2
1
1
1
1
0
2
2
1
1
1
1
1
1
8
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
0
0
0
8
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
0
2
6
0
0
8
1
1
1
5
0
0
0
0
0
1
1
1
8
8
5
0
0
0
0
1
5
0
0
0
8
1
5
2
8
1
1
1
1
1
1
1
1
1
1
5
0
0
0
1
1
1
1
1
8
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
5
0
0
0
8
1
0
0
1
0
1
1
1
1
1
1
4
4
8
1
1
1
5
0
0
0
4
0
8
4
2
1
2
1
0
0
1
2
4
0
8
2
1
1
1
1
1
1
0
0
1
1
2
2
1
0
2
1
1
1
1
1
1
3
3
8
13
0
0
0
1
1
1
1
7
0
0
0
8
2
2
1
2
1
1
0
2
0
1
1
0
5
0
0
1
1
1
1
1
1
1
0
0
1
1
1
8
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
2
0
1
1
1
1
8
1
1
1
1
1
1
5
0
0
0
2
0
0
8
1
2
5
0
0
0
1
1
1
1
1
8
1
0
1
1
1
0
0
0
1
1
0
0
8
1
1
1
1
1
1
5
0
0
0
0
8
2
0
0
0
2
2
0
0
0
2
2
2
1
1
1
2
1
2
1
1
1
1
1
4
2
0
0
1
2
1
2
1
1
5
1
1
1
1
1
1
2
1
1
0
1
2
0
0
1
1
1
0
0
1
2
0
0
1
1
1
2
2
1
1
1
1
2
0
0
0
0
3
3
3
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
2
0
0
0
0
3
3
3
4
1
1
1
1
1
1
1
1
1
1
1
2
0
0
1
1
1
1
1
1
2
0
0
0
0
0
2
0
1
1
1
1
1
1
2
2
1
1
0
1
1
1
1
2
0
0
1
1
1
1
1
2
0
0
1
0
2
1
1
1
1
1
1
1
1
1
1
0
0
2
1
1
0
0
1
1
2
0
0
2
1
1
1
1
1
0
4
2
1
1
1
1
1
1
2
2
1
1
2
1
4
1
1
0
1
2
1
4
2
1
1
1
0
1
0
0
2
1
1
1
1
1
0
1
2
1
1
6
6
6
1
1
4
1
6
1
0
0
1
6
4
4
1
4
4
4
6
0
1
1
4
6
0
6
1
1
1
1
6
6
6
6
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
2
0
1
0
1
4
1
0
0
1
1
1
1
3
1
1
6
0
1
0
1
6
1
1
1
1
1
1
6
1
6
6
1
1
1
1
1
1
1
1
6
1
1
0
6
1
1
6
1
1
1
1
1
1
1
1
1
1
1
1
1
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
6
1
1
1
1
6
4
1
1
1
0
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
4
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
2
2
0
0
1
0
1
2
1
1
1
2
1
1
1
1
1
1
1
0
5
0
1
3
3
3
2
0
5
0
1
3
3
3
1
1
1
1
1
1
1
1
2
3
3
3
3
3
3
13
2
1
1
1
1
1
1
1
1
0
5
0
1
3
3
3
2
0
5
0
1
3
3
3
1
1
1
1
1
1
2
2
1
0
0
0
0
5
1
1
1
1
1
1
1
2
2
11
3
3
3
3
1
1
1
1
1
1
1
2
2
11
3
3
3
3
2
2
1
1
1
1
1
1
1
0
5
0
1
3
3
3
2
0
5
0
1
3
3
3
2
7
1
1
1
7
1
1
1
7
0
7
0
7
1
1
1
1
1
1
1
1
7
0
1
1
0
1
0
1
0
1
7
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
4
4
1
2
0
1
1
1
2
5
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
4
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
2
1
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
4
2
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
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
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
2
2
1
1
1
1
1
1
2
1
1
2
2
2
1
1
1
0
1
0
1
1
1
5
1
1
5
1
2
2
2
2
1
1
1
1
1
1
2
2
1
2
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
2
1
1
1
1
2
1
1
1
1
0
1
1
1
1
1
0
2
2
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
2
1
5
0
0
1
0
1
0
2
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
4
2
0
0
1
1
1
0
0
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
5
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
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
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
2
1
0
1
1
1
1
2
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
2
0
1
1
1
0
1
1
0
1
2
1
1
1
1
11
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
2
2
1
1
1
4
1
4
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
2
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
5
2
1
1
1
2
0
1
1
1
1
1
0
0
1
1
1
2
1
1
1
0
1
1
1
0
0
1
1
1
2
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
2
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
2
1
1
1
1
1
1
1
2
1
3
3
3
0
0
0
5
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
2
2
1
1
1
0
0
6
4
1
1
2
1
2
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
2
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
3
3
3
3
3
3
2
0
0
0
0
5
5
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
0
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
1
2
1
1
1
1
1
1
0
0
0
0
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
6
1
1
1
1
1
1
1
1
1
1
1
13
2
0
0
1
1
1
1
0
1
5
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
4
1
2
1
2
0
1
1
1
1
0
1
1
1
1
1
4
1
1
13
0
0
0
0
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
11
3
3
3
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
5
0
1
1
1
1
1
1
1
2
1
0
2
1
1
1
1
1
1
1
1
1
1
4
1
2
0
0
1
1
1
1
1
1
1
0
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
0
2
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
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
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
1
1
2
5
1
1
1
1
1
1
1
2
2
1
1
1
1
0
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
5
1
1
1
1
1
1
1
1
5
0
0
2
0
1
1
1
1
1
2
1
1
1
1
1
1
2
5
1
1
1
1
1
1
5
1
1
1
2
0
0
1
1
0
0
1
1
2
0
1
2
2
1
1
2
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
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
1
2
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
0
0
1
0
0
0
1
1
2
2
1
1
2
1
0
2
1
2
5
1
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
2
0
1
1
4
1
0
2
2
1
2
1
2
1
0
1
1
2
5
0
0
1
1
1
1
2
1
1
1
2
2
1
1
5
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
2
0
0
1
0
1
1
1
1
5
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
2
5
1
3
3
3
2
0
0
5
1
3
3
3
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
2
1
2
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
0
5
0
1
3
3
3
2
0
5
0
1
3
3
3
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
2
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
1
1
1
1
1
1
1
1
0
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
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
5
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
2
1
1
1
1
1
1
9
1
1
1
1
1
1
2
1
1
1
1
1
1
0
1
1
1
1
4
1
1
1
1
1
0
0
1
1
2
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
5
0
0
0
0
2
2
1
1
1
1
1
1
1
1
1
5
0
0
0
1
1
1
1
1
1
1
1
2
2
1
3
3
3
0
0
0
5
1
1
1
1
1
1
1
1
1
2
2
1
3
3
3
0
0
0
5
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
13
0
0
0
0
1
1
1
1
1
1
1
1
13
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
0
2
2
1
1
1
1
1
1
1
1
0
0
1
1
1
1
2
1
1
2
0
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
2
0
1
1
1
2
2
1
1
1
1
1
1
1
1
1
0
1
2
1
1
0
1
1
5
1
2
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
2
1
1
7
1
1
0
1
1
0
1
1
0
1
1
7
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
2
1
0
0
1
1
1
1
2
0
2
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
2
1
2
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
13
5
0
1
1
5
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
2
2
0
13
0
0
5
1
1
1
1
13
13
0
5
5
0
0
0
0
1
1
1
1
1
1
1
1
13
0
0
0
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
0
2
1
1
1
4
4
2
1
1
1
1
1
2
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
4
4
1
1
1
1
1
2
1
1
1
1
1
1
2
1
1
1
4
4
1
1
1
1
1
1
2
2
4
4
1
1
1
1
1
2
1
4
4
4
1
1
1
1
2
1
1
4
2
1
1
1
1
1
1
4
4
1
1
1
1
1
1
2
4
1
1
1
4
1
1
1
0
1
1
2
1
1
1
1
1
1
1
2
2
1
0
1
1
0
2
2
1
1
1
1
1
1
4
1
1
1
1
1
0
1
1
2
0
1
1
0
1
0
1
1
1
1
1
1
1
4
1
1
0
0
1
1
4
4
4
1
1
4
4
4
1
1
4
1
2
1
1
4
4
4
4
1
1
1
3
1
4
4
4
1
4
4
4
5
4
4
1
4
4
1
1
1
1
4
4
0
1
0
1
1
1
1
1
4
1
4
1
1
1
1
1
1
5
0
0
0
4
4
4
4
1
0
1
1
1
1
1
1
4
4
4
1
1
4
1
1
4
1
1
4
4
4
4
1
1
1
1
1
1
2
1
1
1
1
1
4
4
4
4
2
1
1
1
1
1
0
1
0
4
1
4
4
0
1
0
0
1
0
2
1
1
1
1
1
4
4
4
1
1
0
1
1
1
1
4
1
1
1
4
1
1
1
2
4
1
1
1
1
1
1
4
0
1
1
1
1
1
1
1
4
4
1
0
0
1
0
0
1
0
1
1
1
1
1
1
4
4
2
2
1
1
1
1
2
4
4
4
1
1
1
1
1
0
1
1
4
1
2
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
4
0
1
1
1
1
1
1
1
1
4
1
1
1
2
1
1
1
1
1
4
4
1
13
5
0
0
5
1
5
1
1
1
1
1
1
4
4
1
1
1
1
1
1
2
2
1
2
1
1
1
1
1
4
1
2
1
4
1
1
1
1
1
1
2
1
0
2
1
1
4
1
1
1
1
1
1
1
1
1
1
4
2
1
0
1
1
1
1
1
1
0
4
1
1
1
1
1
1
1
4
4
4
1
1
4
1
1
1
1
4
4
1
1
1
1
1
1
4
4
1
2
1
2
1
2
2
1
1
1
2
1
1
1
1
2
2
2
1
1
2
2
1
1
2
4
1
1
1
1
4
1
2
1
2
1
2
2
1
1
1
2
1
1
4
1
2
1
2
1
2
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
4
4
4
4
4
4
4
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
4
0
0
1
3
3
3
1
0
5
0
2
2
1
4
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
2
1
0
2
1
1
1
1
1
1
4
4
3
3
3
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
0
0
2
1
1
0
1
1
1
0
1
4
1
1
1
1
1
1
0
1
2
1
2
1
2
1
2
5
1
1
1
4
1
2
0
0
1
0
0
1
4
1
1
1
1
1
1
1
1
1
1
4
1
1
4
1
0
1
4
0
1
1
4
1
4
1
1
1
1
1
1
4
0
5
1
2
1
1
2
1
1
2
0
1
1
1
0
1
2
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
2
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
2
0
1
2
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
0
1
1
0
1
1
2
1
1
1
2
2
0
1
13
2
2
2
0
1
1
1
1
1
1
1
2
2
1
2
1
0
0
1
1
0
1
2
0
2
1
1
1
1
1
1
1
1
0
2
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
5
0
0
0
0
2
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
2
1
1
1
1
0
1
1
1
1
1
1
2
1
2
0
1
0
2
1
1
1
1
1
1
1
2
1
1
1
1
5
7
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
4
4
1
0
1
1
1
1
1
1
1
1
1
1
0
1
2
1
1
1
1
1
1
0
1
0
1
4
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
2
0
1
2
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
5
1
2
2
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
2
1
2
1
1
1
2
1
2
0
1
2
1
1
1
1
2
1
2
1
1
1
2
1
2
0
1
2
1
1
1
1
0
1
1
0
7
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
5
13
0
0
1
0
1
1
1
0
0
1
1
0
1
1
13
0
0
0
1
1
1
1
1
1
1
2
1
5
1
1
0
0
1
1
1
3
1
5
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
5
2
2
2
1
1
2
2
1
2
1
1
1
1
1
1
1
11
3
3
3
3
1
1
1
1
1
1
2
2
11
3
3
3
3
3
1
3
3
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
3
3
3
1
1
1
1
1
1
1
2
1
1
3
3
3
1
3
3
3
1
0
5
1
0
0
0
3
3
3
1
1
1
1
1
1
6
3
3
3
3
3
1
1
1
1
1
1
6
3
1
1
1
1
1
1
1
4
4
3
0
3
1
1
1
3
1
1
1
2
1
0
0
3
1
1
1
1
1
1
1
2
2
2
2
1
1
1
2
1
1
1
1
2
1
2
2
1
1
1
0
1
2
1
2
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
0
1
1
2
1
2
1
1
1
2
1
1
1
0
1
0
1
1
1
2
1
1
1
2
5
1
2
1
1
2
1
1
2
1
1
2
1
1
1
2
2
0
1
2
2
1
0
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
2
1
0
0
0
0
0
2
1
1
0
1
1
1
1
2
1
0
1
1
1
1
2
1
2
1
0
1
1
1
1
1
1
1
1
1
1
1
1
2
2
0
2
1
5
2
1
1
1
1
1
1
2
2
2
2
2
0
1
1
1
1
0
0
2
2
1
1
1
1
0
2
1
1
1
1
1
1
2
1
1
1
1
1
2
1
2
1
1
1
0
2
1
1
0
1
1
1
0
2
1
2
1
1
1
0
2
1
1
0
1
1
1
0
2
1
1
1
1
1
1
4
4
2
0
0
1
2
1
1
1
1
1
0
2
4
4
4
0
2
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
2
5
0
0
1
0
1
2
1
1
1
1
1
1
2
0
1
2
1
1
1
1
1
1
4
4
2
1
1
1
1
1
1
1
4
0
5
0
1
1
1
1
1
1
2
1
1
1
1
1
1
2
5
0
0
2
1
1
0
1
1
1
1
2
1
1
1
0
1
1
1
1
1
1
2
1
2
1
1
1
1
1
1
0
1
0
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
0
0
1
1
1
5
0
0
0
1
1
1
1
1
1
2
5
1
2
2
1
1
1
2
1
2
2
2
2
2
1
1
1
1
2
2
1
1
1
1
1
1
5
5
2
2
1
1
1
1
1
1
0
0
2
2
1
1
1
1
0
0
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
2
1
1
1
2
0
1
1
1
1
0
0
2
1
1
2
1
1
2
1
1
2
1
1
2
1
1
2
0
1
1
1
1
1
1
0
0
2
2
2
2
0
1
1
2
2
0
1
1
1
1
1
1
5
0
0
0
1
0
5
0
0
0
0
0
0
0
0
0
39
0
0
0
0
0
0
0
0
4
4
0
45
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
2
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
2
2
5
2
0
2
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
2
0
1
1
5
1
1
1
0
2
1
1
1
1
1
1
0
2
1
2
0
0
2
0
0
2
0
0
0
0
2
0
1
1
2
1
1
1
1
1
1
0
0
1
1
1
1
1
1
2
0
0
0
1
1
1
1
1
1
2
0
0
1
1
0
2
0
1
1
1
1
1
1
3
3
3
4
1
0
1
0
1
1
1
1
1
1
2
0
0
2
0
0
1
1
1
1
4
1
1
4
1
1
1
1
1
1
2
0
0
2
0
0
1
1
0
1
1
1
1
1
1
2
0
0
3
1
3
3
1
1
1
1
1
1
2
0
0
0
2
0
1
1
1
1
1
1
1
0
1
2
0
0
1
1
1
1
1
1
2
0
1
1
2
0
0
1
1
1
1
1
2
1
1
2
1
1
2
0
0
0
2
0
1
1
1
1
1
1
1
1
1
1
1
1
2
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
0
0
0
1
1
1
1
1
1
1
1
0
0
2
1
1
0
2
1
1
0
1
1
1
1
1
2
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
6
1
1
1
1
1
1
6
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
4
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
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
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
4
4
1
1
1
1
1
1
1
0
1
0
4
4
1
1
1
1
1
1
1
0
1
0
0
21
0
1
1
1
1
1
1
2
1
0
2
0
1
1
1
1
1
1
2
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
5
0
0
0
1
2
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
2
2
1
1
0
1
1
1
1
1
2
1
2
2
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
0
0
0
0
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
2
1
1
1
1
2
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
2
1
1
1
1
2
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
2
1
1
1
1
1
1
1
1
1
1
0
0
4
1
4
1
1
1
1
1
1
1
1
1
2
4
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
2
1
1
1
0
0
1
1
0
1
0
0
1
1
1
2
1
1
1
1
2
1
1
1
0
0
1
1
2
2
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
5
2
1
1
1
0
0
2
5
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
6
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
5
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
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
2
1
1
1
1
1
1
2
0
1
1
1
1
1
1
2
1
2
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
2
2
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
2
2
0
1
2
1
5
2
1
1
1
2
1
1
1
0
0
1
1
1
1
0
1
1
1
0
2
1
0
2
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
2
1
1
1
1
0
1
1
1
0
2
1
1
1
1
1
1
4
1
1
5
0
0
1
1
1
0
2
1
0
2
6
4
1
1
1
1
2
1
0
2
1
0
1
1
2
1
1
1
1
1
1
0
0
0
1
1
2
1
0
2
2
1
0
2
1
1
2
2
1
1
1
2
2
0
0
2
1
1
1
2
1
1
0
0
4
1
1
1
1
2
2
2
2
1
1
1
1
0
0
0
1
2
1
1
2
2
2
1
1
1
0
1
1
2
2
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
2
1
0
1
1
1
1
1
0
0
0
0
1
1
1
2
2
1
1
1
1
0
2
4
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
6
6
2
1
1
2
1
1
1
1
1
1
0
0
1
0
1
2
1
1
1
1
1
1
2
1
1
1
0
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
0
1
1
1
1
1
1
0
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
0
1
1
1
1
1
1
0
1
2
1
1
1
1
2
2
2
2
1
2
0
1
5
1
1
0
1
1
0
5
0
0
1
3
3
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
1
1
2
2
1
2
2
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
4
1
1
1
1
1
4
1
1
0
0
1
1
1
1
1
1
4
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
0
2
1
1
1
1
0
1
1
0
2
2
1
1
1
1
1
1
1
1
1
1
1
1
0
2
2
1
1
1
1
1
1
1
1
1
1
1
1
0
2
2
1
1
2
2
0
1
1
0
2
2
1
1
2
1
1
1
0
0
1
13
0
0
1
1
0
1
1
1
1
13
0
0
0
1
1
1
1
1
1
1
1
13
0
0
0
0
13
0
0
0
0
0
13
0
1
0
1
0
1
1
13
1
1
0
2
0
0
0
0
1
1
1
1
1
4
1
1
2
13
0
0
1
1
1
2
1
1
4
0
13
1
1
1
1
1
1
1
1
1
1
1
1
0
0
5
0
1
1
1
1
1
1
1
0
0
2
1
1
1
1
1
1
0
5
0
1
1
1
1
1
1
4
2
1
0
2
1
1
1
1
1
1
1
1
2
5
0
0
1
1
1
1
2
2
1
1
1
1
0
1
1
0
0
1
1
1
2
0
5
0
1
1
1
1
1
1
2
2
1
2
1
1
1
2
1
1
1
1
1
1
1
1
5
0
0
1
1
1
1
1
1
5
0
0
0
2
2
2
2
2
2
1
1
1
1
1
1
1
5
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
0
1
1
1
1
1
1
5
0
0
0
2
2
1
1
1
1
0
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
0
1
1
1
0
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
0
1
1
1
0
5
0
0
0
0
1
1
1
0
0
0
0
5
1
4
1
1
1
1
1
1
5
0
0
2
1
0
1
2
2
1
5
2
0
0
5
1
2
1
1
0
0
5
0
0
1
1
1
1
1
1
1
1
0
5
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
2
1
1
1
0
0
1
0
1
1
1
1
2
1
1
1
0
1
0
1
1
1
1
1
0
2
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
4
2
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
5
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
2
1
1
0
0
1
1
0
0
1
0
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
2
2
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
2
1
2
2
1
1
1
1
2
2
1
2
1
1
1
1
1
1
1
3
3
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
2
1
1
1
2
1
1
1
2
1
1
4
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
5
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
2
1
1
2
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
2
1
1
1
1
1
1
1
1
2
2
1
1
0
1
1
0
1
1
2
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
2
2
2
2
1
1
1
1
0
1
0
0
0
1
0
1
0
13
0
0
0
0
1
1
1
1
1
1
13
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
4
1
1
1
0
5
0
0
0
5
2
0
0
0
1
1
1
1
1
1
2
1
5
2
1
1
1
1
1
1
1
1
2
2
1
1
2
2
1
1
5
5
0
0
0
0
1
1
1
1
1
1
5
1
2
1
1
1
1
1
1
1
1
5
39
5
1
5
2
1
1
1
1
1
1
1
1
0
1
1
1
2
1
5
2
1
1
1
2
1
2
1
1
1
5
1
0
1
0
1
1
1
1
1
0
13
5
2
0
1
1
1
1
5
13
2
1
1
2
1
1
2
1
1
1
1
1
1
1
5
5
1
2
2
1
5
5
1
5
5
0
1
1
12
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
1
2
1
0
1
1
1
1
1
1
1
1
1
1
2
4
1
1
1
1
1
1
2
0
0
2
0
0
1
3
3
3
1
1
3
0
2
1
1
1
1
2
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
5
5
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
6
6
6
6
1
1
1
1
1
1
1
1
1
1
1
1
0
6
1
21
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
2
1
0
5
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
0
0
1
0
0
0
0
0
2
1
0
1
1
1
1
0
1
4
0
1
2
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
0
0
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
2
2
1
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
2
5
1
1
1
1
1
1
1
0
4
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
5
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
2
1
1
0
1
1
0
2
1
1
0
2
0
0
13
5
5
1
1
1
1
1
1
1
1
8
2
2
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
6
0
0
1
1
1
1
1
0
1
0
0
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
1
2
5
1
1
1
1
1
1
1
5
2
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
0
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
5
2
2
1
1
1
1
1
1
1
1
13
5
0
5
0
1
4
1
1
1
1
4
4
1
1
1
1
0
0
1
2
1
1
1
1
1
2
0
1
1
1
4
1
1
1
1
1
2
2
2
2
1
1
1
1
4
4
1
1
1
1
1
1
1
1
1
1
2
2
2
2
1
1
1
1
4
4
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
1
1
1
1
5
1
2
1
1
2
2
1
2
2
1
1
2
0
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
2
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
2
1
0
0
1
1
2
1
1
1
1
1
1
2
1
0
0
2
1
1
1
1
1
1
0
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
0
1
1
0
2
1
1
0
2
0
0
1
1
1
2
1
1
1
1
1
0
0
1
1
0
0
4
1
1
1
1
8
8
8
1
1
1
1
1
1
1
1
1
1
5
0
0
0
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
3
3
3
1
4
0
8
2
1
1
1
1
1
1
1
1
0
0
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
1
0
1
0
46
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
19
1
1
1
1
1
1
0
0
1
1
1
1
4
1
6
6
1
1
1
1
1
1
1
0
0
1
0
0
6
6
6
6
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
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
3
1
1
1
1
1
1
1
3
3
1
0
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
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
0
1
1
1
1
1
1
1
1
2
2
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
4
1
1
2
2
1
2
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
13
0
0
0
1
5
1
2
1
2
1
1
1
1
1
1
1
1
1
1
0
1
1
0
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
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
2
1
1
1
1
1
1
0
1
1
1
1
1
1
2
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
2
0
5
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
4
4
4
37
4
16
4
4
4
4
1
1
1
1
1
1
1
1
0
0
4
4
4
4
0
0
1
1
1
1
2
1
0
1
1
1
1
1
1
4
4
1
1
1
5
13
0
1
2
1
1
1
1
4
4
4
0
1
1
0
1
1
1
2
1
1
2
0
1
1
0
1
1
3
3
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
2
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
2
1
1
1
1
0
1
0
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
2
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
2
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
2
2
2
1
1
2
2
1
2
2
1
1
1
1
3
3
1
1
1
1
1
1
0
1
1
1
1
1
1
1
5
0
1
1
1
1
1
1
1
2
1
1
1
1
1
1
0
0
2
1
2
0
1
1
0
1
1
1
1
1
3
3
4
3
1
1
1
1
2
2
1
1
1
1
2
2
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
2
1
0
2
1
1
1
1
2
1
1
1
4
1
4
1
1
2
1
1
1
1
1
1
2
2
1
2
1
2
1
2
2
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
2
0
1
2
1
1
1
1
2
2
4
1
0
0
1
1
1
1
1
1
1
1
2
0
0
1
2
0
0
1
2
0
0
1
1
1
1
1
0
1
0
0
1
1
28
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
4
4
0
1
1
1
2
1
2
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
2
1
1
1
1
1
1
0
1
0
0
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
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
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
2
3
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
2
2
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
3
1
1
1
1
1
1
2
1
1
1
1
5
0
0
0
0
1
0
1
1
1
1
2
1
1
1
1
1
1
0
2
2
1
1
1
3
3
3
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
2
6
1
1
1
1
1
1
0
0
1
1
1
1
17
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
24
1
0
0
1
1
2
1
1
1
1
5
2
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
12
1
5
5
2
1
1
2
1
5
5
44
8
8
8
2
2
1
1
1
1
0
0
0
1
1
1
1
1
1
5
0
0
0
2
2
1
1
1
1
1
1
5
0
0
0
8
1
1
1
1
0
0
8
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
2
0
0
8
1
2
1
1
2
0
0
1
1
1
1
1
1
1
1
1
1
1
1
8
39
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
2
0
0
2
0
0
5
0
0
0
1
1
1
2
2
2
1
1
1
1
0
0
1
0
0
1
3
3
3
1
1
1
1
1
1
1
2
2
1
1
1
2
0
0
0
0
1
1
1
1
1
1
1
1
1
2
1
1
0
2
0
2
0
2
1
1
1
1
1
1
1
1
1
1
1
0
2
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
6
3
1
3
3
1
4
6
1
6
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
2
2
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
2
1
3
3
3
0
0
0
5
1
1
0
7
1
1
1
0
1
0
1
1
0
1
1
1
0
7
0
7
0
7
0
7
1
1
1
1
1
1
1
1
0
7
7
0
0
7
7
0
1
1
1
1
1
1
1
1
1
1
1
1
7
0
7
0
7
0
7
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
4
1
1
1
1
4
1
1
4
1
4
1
1
1
0
2
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
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
1
1
1
1
1
1
5
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
0
1
1
0
2
1
1
1
1
1
1
1
1
1
1
1
2
1
0
1
1
1
0
1
1
2
1
1
1
1
2
1
1
1
1
0
1
1
1
0
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
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
2
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
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
2
1
1
1
1
1
1
0
0
1
3
3
2
5
1
1
1
1
1
1
1
1
3
3
3
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
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
0
0
0
0
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
0
0
0
0
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
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
2
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
2
1
1
1
1
0
1
1
1
1
1
1
0
1
0
2
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
2
0
0
1
1
1
1
1
1
1
1
1
1
0
0
2
0
0
1
1
1
1
1
1
1
6
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
5
0
1
1
1
1
1
1
2
2
1
1
1
2
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
0
1
0
5
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
2
2
2
1
1
1
1
0
0
1
1
0
0
1
1
3
3
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
2
1
1
3
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
2
1
2
0
1
1
7
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
7
1
1
1
4
0
1
1
0
1
1
0
1
1
1
1
2
1
2
1
1
1
1
1
0
13
0
0
5
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
4
4
1
1
1
1
1
0
1
1
1
1
2
1
1
1
1
1
1
1
0
0
1
1
4
1
1
0
0
1
1
4
4
7
4
4
1
1
1
1
1
1
1
1
1
1
1
1
47
4
4
4
1
1
1
1
1
1
1
1
1
1
45
4
4
4
1
1
0
0
4
4
2
1
1
1
1
1
4
1
4
4
4
1
1
1
1
0
0
0
1
1
1
1
1
1
4
1
1
0
0
1
0
1
1
1
1
1
1
4
4
1
1
1
4
1
1
4
1
1
1
4
1
4
0
1
1
1
4
1
1
1
4
1
0
2
2
1
1
1
1
1
1
4
0
1
1
4
1
1
1
1
1
1
1
2
1
0
1
0
2
1
1
1
1
1
1
4
1
1
1
4
1
1
1
0
1
0
1
1
4
1
1
0
1
1
4
0
1
1
4
4
1
1
0
13
0
1
1
4
0
1
1
4
1
2
1
2
2
1
1
2
1
2
1
2
0
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
7
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
2
0
0
2
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
13
0
1
1
1
0
2
1
1
1
1
4
1
0
1
0
1
1
13
0
0
1
0
1
2
1
2
1
2
1
2
2
2
2
1
1
1
5
1
2
2
2
1
1
1
2
2
5
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
1
1
1
1
1
0
0
1
1
0
3
3
3
1
1
1
1
1
1
1
1
1
1
1
3
3
3
3
3
3
1
0
1
0
1
1
1
1
1
1
3
3
3
2
1
2
1
1
1
1
0
0
0
3
1
1
1
8
9
2
1
1
2
1
2
1
2
1
2
1
1
1
1
1
1
0
1
1
1
2
2
1
1
1
2
2
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
0
4
0
3
3
2
0
1
1
1
2
1
1
2
0
0
1
1
1
1
1
2
0
1
0
1
2
1
0
2
2
0
1
2
0
2
0
2
1
1
1
1
6
1
1
5
2
1
2
2
1
0
0
1
1
1
1
1
1
2
1
1
1
1
1
1
5
1
0
0
2
1
1
1
2
1
1
1
1
1
1
1
1
2
2
1
2
1
1
1
1
1
2
1
1
1
4
2
2
2
1
1
2
2
1
2
1
2
1
1
1
1
1
1
5
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
2
2
1
1
1
2
1
1
1
2
1
1
2
1
1
1
2
1
1
2
2
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
5
0
0
2
24
0
5
0
0
0
0
0
0
0
0
0
0
0
48
0
0
1
2
0
1
1
1
1
1
1
2
0
0
0
1
1
1
1
2
0
0
1
1
2
2
2
2
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
2
1
0
2
1
1
1
1
1
1
2
1
1
1
1
1
1
2
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
2
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
1
1
1
0
3
1
5
2
1
2
1
3
3
3
1
0
2
2
1
1
1
1
1
1
1
2
1
1
1
2
1
0
0
0
3
3
3
1
1
4
1
1
1
1
1
1
1
1
1
2
2
0
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
0
1
1
1
1
1
2
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
9
9
9
9
0
2
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
4
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
2
1
1
1
1
1
1
1
1
1
1
2
1
0
2
1
1
1
1
1
1
0
0
0
0
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
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
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
0
0
1
1
1
2
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
2
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
2
1
2
1
1
1
1
2
1
1
0
0
0
1
1
1
4
4
1
1
1
2
1
1
1
1
2
1
2
1
1
2
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
2
1
1
1
1
1
1
1
1
1
6
0
2
2
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
0
0
0
0
4
4
13
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
0
1
1
1
1
1
0
13
5
0
1
1
0
1
1
1
1
0
11
0
0
2
1
2
2
1
1
1
1
2
2
1
2
1
1
1
1
1
1
1
3
3
0
1
2
1
1
1
5
1
0
1
2
3
3
3
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
4
4
4
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
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
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
2
1
1
1
0
0
1
1
1
2
1
1
0
1
1
0
1
1
0
2
5
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
31
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
6
2
1
1
1
1
1
1
1
1
1
6
0
18
1
2
1
1
1
1
0
4
1
1
2
1
1
1
0
1
1
1
0
4
2
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
2
4
2
2
1
1
1
1
1
1
1
1
4
2
1
23
2
1
1
1
1
1
1
1
9
22
5
0
0
0
0
22
8
2
2
2
2
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
8
8
5
0
0
5
0
0
0
0
0
0
8
8
0
1
1
1
1
1
1
1
1
0
8
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
8
1
1
1
1
1
1
1
1
1
1
5
0
0
0
0
8
1
1
1
1
1
1
1
1
1
1
5
0
0
0
5
0
0
0
2
0
8
8
1
1
1
1
1
1
1
1
1
1
5
0
0
0
1
1
5
0
0
0
2
1
8
5
0
0
0
0
1
1
1
1
1
1
1
1
1
8
8
5
1
2
1
1
1
1
1
1
1
1
5
1
2
5
5
1
8
1
1
1
1
1
1
1
1
5
0
0
0
8
1
1
1
1
1
1
1
1
2
1
2
1
0
0
0
1
1
8
1
1
1
0
1
0
1
1
1
0
1
4
1
8
2
1
2
1
1
1
1
1
1
0
1
3
3
5
1
0
1
2
1
1
1
1
0
1
0
1
8
0
0
2
1
2
1
2
1
0
0
0
4
4
8
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
8
8
1
1
1
1
1
1
2
21
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
0
8
0
1
2
5
0
0
1
1
1
1
1
1
8
8
1
1
1
1
1
1
5
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
5
0
0
0
1
0
8
1
1
1
1
1
1
1
1
5
0
0
0
8
1
0
1
1
1
0
0
0
1
1
0
0
8
5
0
0
0
5
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
2
0
0
0
1
2
2
2
1
1
0
1
1
1
1
2
0
0
0
2
1
1
1
1
1
1
1
3
3
3
2
0
0
2
1
1
1
1
1
1
0
1
1
0
2
1
1
1
1
1
1
0
1
1
0
2
0
0
0
2
1
1
1
1
1
1
2
1
2
0
2
0
1
1
1
1
0
1
0
2
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
0
0
5
6
0
0
0
1
1
1
1
1
0
1
1
2
0
1
1
0
1
0
1
1
1
1
1
1
1
4
4
6
1
6
1
0
1
0
1
1
1
1
1
6
6
0
2
5
1
1
1
1
1
1
1
6
6
6
1
1
1
1
1
1
1
1
1
1
1
1
0
6
1
1
1
1
1
1
1
1
1
1
1
1
6
1
1
1
6
1
1
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
6
0
1
1
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
2
1
3
3
3
0
0
0
5
1
1
1
1
1
1
2
2
1
0
0
0
5
1
1
2
2
1
1
1
1
1
5
0
0
0
3
3
3
1
1
1
1
1
1
2
2
0
11
3
3
3
3
7
1
1
1
1
7
2
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
7
0
7
0
7
0
7
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
2
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
2
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
5
5
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
2
2
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
5
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
2
2
1
1
1
1
2
1
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
1
2
1
1
1
1
1
2
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
0
1
1
2
2
2
2
2
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
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
0
1
1
1
0
2
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
2
2
2
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
2
1
1
0
1
1
2
1
1
1
1
1
1
2
0
1
1
1
1
1
0
1
1
3
3
3
0
1
1
3
3
3
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
2
1
1
1
1
2
4
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
2
1
1
1
1
1
0
1
1
2
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
4
4
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
2
1
1
1
1
1
1
1
1
1
1
1
1
0
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
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
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
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
5
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
2
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
11
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
5
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
13
0
0
5
2
1
1
5
1
0
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
2
1
1
2
1
1
1
1
2
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
4
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
2
0
1
1
1
4
0
0
1
1
1
1
1
1
1
1
1
1
1
4
49
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
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
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
2
1
1
1
2
1
2
1
1
1
1
1
1
0
0
2
2
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
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
1
1
0
1
1
1
1
1
1
1
1
2
2
1
1
1
1
0
1
1
1
1
1
1
1
1
4
0
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
0
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
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
2
0
0
2
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
0
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
2
1
1
2
0
1
2
1
1
1
1
1
2
1
1
0
1
1
1
1
2
1
1
1
1
1
1
0
2
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
13
0
1
1
1
1
1
0
1
1
1
1
1
1
5
5
1
1
1
2
1
0
0
1
0
0
1
2
1
0
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
4
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
13
1
2
0
2
1
1
1
5
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
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
4
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
5
1
1
1
1
1
1
1
1
1
0
0
2
0
1
1
1
1
1
1
1
1
1
1
5
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
4
1
1
1
1
5
0
0
13
5
5
5
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
2
1
1
1
1
1
1
1
1
1
2
1
2
1
2
1
1
1
1
1
1
1
1
1
1
0
2
1
1
0
1
0
2
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
0
7
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
2
7
0
1
1
0
1
1
0
1
1
1
1
1
2
7
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
13
0
1
1
0
1
1
0
1
1
13
0
0
0
1
1
1
1
1
1
13
5
5
1
0
0
5
1
1
1
1
1
1
1
1
2
2
1
1
2
2
1
0
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
4
1
2
1
1
1
1
1
1
1
1
0
1
0
1
0
4
1
1
0
0
1
1
1
1
1
1
2
1
1
1
4
4
2
1
1
1
5
1
1
1
0
2
1
0
1
2
0
1
1
2
1
5
1
2
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
4
2
1
4
1
1
1
1
1
1
4
2
1
4
1
1
1
1
1
1
2
1
4
1
1
1
1
1
1
1
2
1
4
1
2
2
2
2
2
1
1
1
2
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
4
1
1
2
1
1
5
1
1
1
2
2
1
1
1
4
4
0
2
1
1
1
1
2
1
1
1
4
1
1
1
4
4
1
2
1
1
1
1
1
1
1
1
0
0
0
2
1
1
1
1
1
4
1
1
1
1
3
3
3
1
2
1
1
1
1
1
1
1
4
1
1
1
1
2
1
1
0
1
4
2
1
1
1
2
1
5
1
1
1
2
1
1
1
0
0
0
1
2
0
0
0
1
1
1
1
1
1
1
4
1
1
0
1
0
1
1
0
0
2
4
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
2
1
1
4
4
2
1
1
0
1
0
1
0
31
4
4
19
4
4
0
1
5
1
1
1
4
13
0
0
0
0
1
1
1
4
1
1
1
4
1
1
1
4
4
1
1
0
0
4
4
4
1
4
4
4
3
1
1
3
4
4
4
4
1
0
1
2
4
4
1
1
1
1
1
1
1
0
1
2
4
4
1
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
1
0
1
4
4
0
1
0
1
4
4
1
1
1
4
4
0
4
1
1
4
4
4
4
1
1
4
1
4
4
1
0
1
0
1
1
1
1
1
4
4
4
4
4
1
1
0
0
1
1
1
1
1
1
4
4
4
4
2
0
0
1
1
1
1
1
4
1
4
2
1
4
1
4
1
4
1
4
1
4
2
0
0
1
1
1
4
1
4
1
1
4
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
4
1
1
1
2
1
0
1
1
1
1
1
1
4
4
1
1
1
1
1
2
1
1
1
1
1
1
0
0
1
1
1
1
1
4
4
1
0
0
1
1
1
1
1
1
1
1
1
4
4
2
2
1
1
2
4
1
1
1
1
1
1
4
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
4
4
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
4
4
1
1
1
1
1
1
4
4
0
1
1
0
0
1
1
0
1
1
1
1
2
0
0
1
1
1
1
4
1
4
1
1
0
0
1
1
1
1
4
1
4
1
1
1
1
1
1
0
1
1
1
1
1
1
4
1
1
4
1
1
1
1
1
1
4
2
1
1
1
1
1
1
0
0
4
4
1
0
1
2
1
0
0
1
0
1
1
1
1
1
1
4
1
0
1
0
1
1
1
1
1
4
1
5
1
2
1
1
2
1
1
1
1
2
1
1
4
1
2
1
0
1
2
4
1
0
0
13
0
1
1
4
1
0
1
1
4
1
0
1
1
4
1
4
1
1
1
0
4
1
1
4
4
1
1
0
0
1
0
1
1
1
1
4
4
0
13
0
1
1
4
0
1
1
4
0
1
1
4
13
1
0
0
0
4
1
13
1
0
0
0
4
1
13
0
0
4
4
1
1
4
1
1
1
1
1
1
1
1
5
0
0
0
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
1
2
1
0
1
1
2
1
1
1
1
1
1
1
5
5
5
1
1
1
2
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
2
1
1
1
1
1
0
2
1
1
1
2
1
1
1
13
2
2
2
0
1
1
1
1
1
1
2
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
3
3
2
1
1
2
1
1
1
1
1
1
1
1
1
0
2
1
2
1
0
1
2
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
2
1
0
1
1
1
1
1
1
1
0
1
1
1
1
5
2
2
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
0
0
1
1
1
1
7
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
2
0
1
1
1
2
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
4
1
1
1
1
1
1
0
1
1
1
1
2
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
2
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
13
0
0
1
0
1
1
5
0
0
0
1
5
0
1
5
1
5
1
1
1
1
1
1
1
1
2
11
3
3
3
3
3
1
1
3
4
0
1
3
3
3
1
1
1
1
1
3
1
3
3
3
3
3
3
3
3
3
3
1
3
3
1
1
1
3
3
3
3
3
3
3
3
3
1
1
1
1
1
1
1
1
1
1
0
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
1
1
0
1
0
1
1
1
1
1
1
1
1
1
3
3
3
3
3
3
3
3
3
3
3
3
3
3
1
1
0
1
3
3
4
3
3
3
1
3
3
1
1
1
1
1
2
1
1
1
1
1
1
1
1
3
3
3
4
4
2
1
1
1
1
0
4
1
4
1
1
1
1
1
1
1
3
3
3
1
1
1
1
1
1
1
1
1
1
2
1
3
3
3
0
0
0
5
1
1
1
1
1
1
1
1
1
1
4
4
3
2
0
0
0
0
1
0
1
2
1
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
3
1
1
1
0
0
1
0
1
1
1
0
2
1
1
1
1
1
1
0
2
1
1
1
1
1
1
3
3
0
1
1
1
1
1
1
1
3
3
3
3
1
1
1
1
1
1
3
2
5
0
0
1
2
2
1
1
1
2
1
2
1
1
0
2
3
1
1
2
2
2
1
2
1
1
1
5
1
2
2
1
1
1
1
1
1
1
2
1
1
1
1
2
1
2
2
1
1
1
1
1
1
1
2
2
1
1
2
1
0
1
1
2
1
1
1
1
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
2
1
1
2
2
1
2
1
1
1
1
1
1
1
1
2
1
2
2
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
2
1
1
2
1
2
1
1
1
1
0
1
1
0
1
1
5
1
2
1
2
1
1
2
2
1
2
2
2
1
0
2
2
1
1
1
1
1
1
2
1
1
5
5
2
2
2
1
5
2
1
1
1
1
1
1
1
1
1
1
2
2
1
26
2
1
0
2
0
0
2
1
1
1
2
1
0
2
2
1
1
0
1
1
1
2
1
1
1
1
1
1
0
1
0
1
1
1
1
1
2
4
0
2
1
1
1
1
1
1
0
1
2
0
2
1
1
1
1
1
1
0
1
1
1
1
1
1
2
5
0
0
2
1
1
0
1
1
1
1
2
1
1
1
1
1
1
1
1
2
0
1
2
0
0
2
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
2
0
1
0
1
1
1
1
2
1
1
1
1
2
1
1
4
1
1
1
1
1
1
1
1
1
1
2
2
2
1
2
1
2
1
2
2
2
1
1
4
2
2
2
1
1
2
2
1
2
1
2
1
1
1
1
1
1
2
1
2
1
2
2
2
2
1
1
1
1
1
1
2
1
1
1
1
1
2
2
0
0
0
1
1
1
2
1
1
2
1
1
1
2
0
2
1
1
2
1
1
0
1
2
1
1
1
2
1
1
2
1
1
1
2
1
1
2
1
1
2
1
1
2
1
1
2
1
1
2
1
1
2
5
1
0
0
0
2
1
0
1
1
1
1
1
1
13
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
2
0
1
0
0
1
1
1
1
1
1
1
1
0
1
2
0
1
0
0
1
0
0
0
0
13
0
1
1
1
2
2
1
1
4
1
1
4
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
4
0
0
1
1
4
4
0
1
1
1
1
1
2
0
21
1
0
0
0
1
1
1
2
1
1
0
15
0
15
0
1
0
1
1
1
1
1
1
2
0
0
1
1
1
1
1
0
0
0
0
1
1
1
2
0
0
0
1
1
1
1
1
1
2
0
0
1
4
0
21
0
1
1
1
1
1
1
0
2
0
0
0
4
1
1
1
2
0
0
1
1
1
1
0
2
1
1
0
0
1
1
1
1
1
1
2
0
0
1
1
0
1
1
1
1
1
1
2
0
0
1
0
1
0
1
1
1
1
1
4
2
0
0
1
0
1
1
1
1
1
1
2
0
0
1
0
0
1
1
1
1
1
1
2
0
0
1
4
1
1
1
1
1
1
2
0
0
2
1
1
1
1
1
1
0
2
1
1
1
1
0
1
1
2
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
2
2
0
1
1
0
1
1
1
0
0
1
2
1
1
1
1
2
1
1
1
0
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
2
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
2
2
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
2
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
4
0
1
4
0
2
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
2
1
2
1
1
1
1
0
2
2
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
2
1
1
1
5
0
0
0
1
2
1
1
1
0
1
0
2
1
1
1
1
1
1
1
1
2
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
2
5
2
1
1
0
0
2
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
2
1
1
1
0
1
1
1
1
4
1
1
1
1
1
1
1
1
1
0
0
2
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
0
2
0
1
1
0
0
1
1
1
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
0
0
0
0
2
1
1
5
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
2
1
1
5
1
2
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
2
1
0
1
0
1
1
1
2
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
5
5
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
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
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
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
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
2
1
1
1
1
1
4
3
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
2
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
2
1
1
1
1
1
1
3
3
3
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
1
0
5
1
1
1
2
0
5
1
1
1
1
1
1
1
1
1
0
1
2
1
1
1
1
1
1
5
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
1
2
0
1
1
1
1
1
1
1
1
2
0
1
1
1
1
1
1
1
2
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
2
1
5
2
0
1
1
1
1
0
2
2
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
2
0
1
1
1
1
1
1
0
1
1
2
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
2
2
1
1
1
1
1
1
1
0
1
1
1
1
2
1
1
1
1
1
1
0
0
2
1
1
1
1
1
1
1
1
0
0
1
1
2
1
1
1
0
0
0
1
1
2
1
0
2
2
1
0
2
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
2
2
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
2
1
0
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
2
1
1
1
1
1
1
0
2
2
1
1
1
1
1
1
1
1
1
1
1
1
13
0
1
1
1
1
1
1
1
1
1
1
1
1
0
13
0
1
0
1
13
5
0
0
0
1
1
1
1
5
1
0
0
1
1
1
1
1
1
2
5
0
0
1
1
1
1
2
2
1
1
1
1
0
1
1
0
0
1
1
1
2
5
0
0
2
1
2
1
1
5
1
1
1
1
2
1
1
5
0
0
2
1
2
1
1
5
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
0
2
1
1
1
1
1
1
0
5
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
4
4
4
0
0
5
0
5
0
1
1
1
0
0
5
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
11
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
2
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
5
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
4
4
4
2
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
4
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
4
1
1
4
1
1
4
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
2
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
2
1
2
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
2
2
1
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
2
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
2
5
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
2
0
1
1
1
1
1
1
1
2
2
2
1
1
1
1
1
1
0
1
1
1
1
1
1
5
0
0
0
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
5
1
1
1
1
1
1
1
5
2
1
1
1
2
1
0
0
1
1
2
2
1
2
1
5
2
5
1
2
1
1
1
1
1
1
5
1
1
5
1
1
5
5
4
31
4
0
0
1
1
1
1
1
1
2
2
6
1
1
2
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
6
2
1
1
1
1
1
1
1
1
1
1
1
1
6
1
1
1
1
1
1
1
1
1
2
6
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
6
1
1
1
1
1
1
1
1
1
2
6
4
17
4
17
2
0
0
0
2
0
0
0
1
1
0
0
0
0
17
1
1
0
0
1
0
17
0
1
1
0
1
0
5
2
1
1
1
0
0
0
1
1
1
1
5
2
1
1
1
0
0
0
1
1
1
1
17
0
17
1
1
1
5
0
0
0
2
1
0
1
1
1
1
5
0
0
0
2
1
0
1
1
2
1
4
1
4
2
1
1
1
1
4
1
2
0
1
0
1
1
1
4
2
1
1
1
1
1
1
0
4
1
1
1
2
1
1
1
2
1
1
1
1
0
4
1
1
1
1
1
1
1
1
2
4
2
2
1
1
1
1
1
1
1
4
2
1
1
1
1
1
1
1
1
4
2
1
1
1
1
1
1
1
1
4
1
1
0
1
1
2
1
1
1
1
0
1
1
1
2
1
1
1
1
1
1
4
1
1
1
1
2
1
1
1
1
1
1
1
1
1
4
2
1
1
1
1
1
1
1
1
1
4
2
1
1
1
1
1
1
1
1
1
4
15
1
1
1
1
1
1
1
1
1
1
32
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
0
0
0
0
1
1
1
1
1
1
0
0
0
0
32
8
1
1
1
1
1
1
1
1
2
9
1
1
1
1
1
1
2
2
9
2
2
1
1
1
1
1
1
1
9
1
1
1
1
1
1
1
1
1
1
2
9
1
1
1
1
1
1
1
1
1
1
2
9
1
1
1
1
1
1
1
1
1
2
9
12
9
5
0
0
5
0
0
0
0
0
0
12
12
2
0
0
0
12
1
1
1
1
1
1
0
0
12
1
1
1
1
1
1
0
0
1
1
12
1
0
1
0
1
1
1
1
1
12
0
1
0
1
1
1
1
1
1
1
1
1
1
1
12
1
0
0
1
12
1
0
0
12
4
0
0
0
12
12
2
0
0
1
1
1
1
1
1
1
1
1
1
5
0
0
0
0
12
1
1
1
1
1
1
1
1
1
1
5
0
0
0
0
12
1
2
5
12
4
2
1
2
1
0
0
1
2
4
0
12
1
0
1
0
1
0
1
0
1
0
1
0
0
12
1
1
2
1
1
1
1
1
1
0
0
12
1
1
1
1
0
0
0
0
1
1
1
1
12
8
6
13
0
13
0
0
0
0
0
0
8
8
8
8
1
1
1
1
1
1
5
0
0
0
1
1
1
2
0
1
1
1
1
5
0
0
0
1
1
1
2
0
1
1
1
1
1
1
1
1
1
1
5
0
0
0
5
0
0
0
0
8
8
1
1
1
1
1
1
2
2
1
1
1
5
0
0
0
4
4
1
0
2
2
1
1
1
1
1
1
5
0
0
0
8
8
8
8
5
0
0
0
1
1
1
1
1
1
5
0
0
0
1
1
1
1
1
1
5
0
0
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
1
1
1
1
1
1
5
0
0
0
5
0
0
0
0
2
2
1
1
1
1
1
1
1
1
1
8
8
8
8
7
3
3
3
3
3
3
2
1
1
1
1
5
5
1
1
2
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
8
8
1
1
1
1
1
1
5
0
0
0
2
0
0
1
1
1
1
1
1
5
0
0
0
2
0
0
1
1
8
8
1
1
1
1
1
1
5
0
0
0
2
0
0
1
1
1
1
1
1
5
0
0
0
2
0
0
1
1
8
8
0
2
0
0
8
1
1
1
1
5
1
1
4
0
0
1
1
2
2
1
1
1
0
0
1
1
8
1
0
0
1
4
8
1
0
0
3
1
8
1
0
0
1
8
8
1
1
1
1
1
1
0
4
0
0
0
8
4
0
0
8
0
2
0
8
1
1
5
0
0
0
8
1
1
1
1
1
1
1
1
1
1
5
0
0
0
0
8
1
1
1
1
1
1
1
1
1
1
5
0
0
0
8
1
1
1
1
1
1
1
1
1
1
5
0
0
0
1
1
1
1
8
1
1
1
5
0
0
0
8
1
1
5
0
0
0
0
8
2
1
1
1
1
1
1
1
1
2
1
5
0
0
0
1
1
2
1
1
0
8
1
5
0
0
0
0
8
5
0
0
0
0
1
8
5
0
0
0
0
1
1
1
1
1
1
1
1
8
1
5
2
8
1
1
1
1
1
1
5
8
1
1
1
1
1
1
5
8
1
1
1
5
0
0
0
1
8
8
1
1
0
0
0
1
8
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
2
1
1
1
0
0
1
1
1
0
1
0
0
8
1
1
0
4
4
0
1
8
1
1
1
1
1
1
5
0
0
0
1
1
8
8
1
1
1
1
1
1
5
0
0
0
1
1
1
1
1
1
1
5
0
0
0
1
8
1
1
2
1
2
1
0
0
0
1
1
1
1
8
1
0
0
1
4
4
4
8
8
1
0
0
1
4
4
1
2
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
3
3
3
1
4
0
8
4
2
1
2
1
0
0
1
2
4
0
8
1
0
1
0
1
1
1
1
1
0
2
2
1
1
1
1
0
1
0
1
0
2
2
1
1
1
1
0
1
0
1
8
2
2
1
2
1
1
0
2
0
1
1
0
5
0
0
1
1
1
1
1
1
0
1
3
3
3
8
3
11
3
3
3
8
3
11
3
3
3
8
2
1
1
2
2
8
1
1
1
1
1
1
5
0
0
0
2
8
0
0
2
1
2
1
2
1
0
0
0
4
4
8
5
2
1
0
0
1
1
4
1
1
1
1
8
0
0
0
0
5
1
1
1
1
1
1
1
2
0
0
8
0
1
0
1
0
1
1
1
1
1
2
0
0
8
1
0
1
1
1
1
1
2
0
0
8
1
1
1
1
1
1
1
2
2
1
1
0
0
9
9
9
0
0
1
1
8
1
0
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
8
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
0
8
8
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
5
0
0
0
8
8
1
1
1
1
1
1
5
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
5
0
0
0
8
2
2
1
1
1
1
0
0
0
1
1
1
1
1
1
5
0
0
0
8
2
2
1
1
1
1
1
1
5
0
0
0
1
1
0
8
1
1
1
0
0
1
1
0
0
1
0
0
0
2
2
5
0
0
5
0
0
0
0
0
0
2
2
1
0
0
2
2
4
0
0
0
0
2
4
0
0
0
0
2
5
0
0
0
2
2
1
2
5
2
1
1
1
0
1
2
0
0
1
1
1
1
2
1
1
2
0
0
2
1
1
0
0
2
1
1
1
1
1
1
2
1
2
0
1
2
2
2
1
1
2
1
1
0
0
0
0
1
1
1
1
1
0
1
2
1
0
1
1
1
1
2
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
2
0
0
0
2
1
1
1
1
1
1
2
1
1
1
0
0
2
1
1
1
1
1
1
1
1
2
1
0
0
2
1
1
1
1
1
1
0
0
2
1
1
1
0
0
2
1
1
1
0
0
2
0
1
1
1
1
1
2
0
0
1
1
2
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
13
1
1
1
1
0
0
0
0
13
1
2
1
1
1
0
1
2
1
1
1
1
1
1
1
1
1
0
1
1
2
0
1
1
1
0
16
4
4
1
1
1
1
1
1
1
2
2
6
1
1
1
1
1
1
1
2
2
6
1
1
1
1
1
1
1
1
2
2
6
1
1
1
1
1
0
1
1
2
0
1
1
0
1
0
1
1
1
1
1
1
1
6
0
1
1
6
6
6
0
1
6
6
6
6
6
1
0
0
1
6
6
1
0
0
1
1
1
1
6
1
1
6
1
1
1
4
4
4
6
6
6
6
6
6
6
1
1
1
1
1
1
6
6
6
6
6
6
6
6
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
6
6
0
1
1
1
6
6
1
1
1
1
1
1
6
6
0
1
1
1
6
6
1
1
1
6
1
1
1
1
1
1
6
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
6
6
6
1
1
1
1
1
1
1
1
1
1
1
1
0
6
1
1
1
1
1
1
1
1
1
1
1
1
0
6
1
6
1
1
6
6
1
1
2
6
1
1
1
6
1
1
1
6
1
1
1
1
6
6
1
1
1
1
1
6
1
1
1
1
1
6
6
6
1
1
1
1
1
1
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
6
1
6
1
4
0
1
1
1
6
1
1
1
1
1
1
1
1
6
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
2
0
1
1
1
1
2
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
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
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
2
2
1
1
1
1
1
13
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
5
1
1
1
1
1
1
2
2
1
1
1
1
1
1
2
2
0
0
0
0
5
1
1
1
1
1
1
2
2
1
1
0
0
0
0
5
2
2
1
1
1
1
1
1
2
1
2
1
2
1
1
1
1
1
1
1
2
2
3
3
3
3
3
3
13
1
1
1
1
1
1
1
2
2
1
3
3
3
0
0
0
5
1
1
1
1
1
1
1
2
2
3
3
3
3
3
3
13
1
7
1
1
4
2
7
1
1
1
7
1
1
1
7
0
7
1
1
1
1
1
1
7
0
7
0
7
1
1
1
1
1
1
1
7
0
7
1
1
1
1
1
1
1
1
7
0
0
1
1
1
1
0
7
0
7
0
7
0
7
0
7
1
1
1
1
1
1
1
1
1
1
0
7
0
7
0
7
1
1
1
1
1
1
16
4
4
4
1
1
5
1
1
2
0
1
0
2
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
2
1
1
1
1
0
2
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
1
1
1
1
0
0
1
1
1
1
1
1
4
4
1
1
1
1
1
1
1
1
1
1
7
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
2
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
0
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
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
0
2
1
1
1
1
0
2
1
1
1
1
0
2
1
1
1
1
1
1
2
1
1
1
1
1
1
2
1
2
1
2
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
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
1
1
1
0
1
1
1
1
1
1
0
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
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
1
1
2
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
2
1
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
2
2
1
1
1
1
1
0
1
1
0
1
1
5
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
2
1
1
0
1
1
1
1
1
2
2
2
1
1
1
1
1
0
1
2
5
1
1
1
1
0
1
2
5
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
4
0
1
0
1
2
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
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
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
2
1
0
1
0
2
5
1
1
1
1
0
1
1
1
2
0
1
0
2
1
5
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
4
4
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
4
1
1
1
1
1
1
0
4
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
5
0
0
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
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
1
1
1
1
1
1
0
1
1
1
1
1
1
1
4
1
1
1
1
2
2
1
2
0
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
0
0
1
1
1
2
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
3
2
0
1
1
1
5
1
1
0
1
1
1
1
1
2
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
2
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
4
4
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
5
1
2
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
5
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
2
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
2
1
1
0
1
5
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
2
0
0
1
1
1
1
2
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
2
1
1
1
1
1
0
1
2
1
1
1
1
1
1
0
2
1
0
1
1
0
0
1
2
1
1
1
1
1
1
1
1
1
1
2
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
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
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
2
1
1
5
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
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
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
2
0
1
1
5
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
2
0
1
2
1
1
1
1
1
1
1
1
1
1
1
1
5
2
1
2
1
1
0
0
0
1
1
1
1
1
1
1
5
2
1
2
1
1
0
0
0
1
1
1
1
1
1
1
1
2
1
2
2
13
0
5
4
1
0
0
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
2
1
1
1
1
0
2
2
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
1
2
1
2
2
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
2
2
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
4
4
4
1
4
2
0
0
1
1
1
4
4
1
0
0
1
1
4
4
1
0
0
1
1
4
4
4
4
4
4
1
1
1
4
1
1
1
1
1
1
1
4
4
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
2
1
2
2
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
2
1
1
1
2
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
2
1
1
1
2
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
5
5
1
1
1
1
5
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
2
1
0
2
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
5
1
1
1
1
5
1
1
1
1
1
1
1
1
1
1
0
2
1
1
0
1
1
2
1
1
1
1
1
1
0
0
2
2
1
1
1
1
1
1
1
0
1
1
1
2
2
1
1
1
1
2
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
2
2
1
1
1
1
1
2
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
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
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
2
1
2
1
1
1
0
0
1
1
1
0
1
1
2
2
2
1
0
1
1
2
0
1
1
1
2
5
1
5
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
2
0
0
1
1
1
1
1
1
1
1
2
0
0
1
1
1
1
1
1
1
2
0
0
2
0
0
1
1
1
1
1
1
1
2
0
0
2
0
0
1
1
1
1
1
1
4
1
2
0
0
1
1
1
5
1
1
1
0
1
1
1
1
1
1
1
1
1
1
5
0
0
0
2
4
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
6
1
1
2
1
0
1
2
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
0
1
1
1
1
1
1
2
4
1
1
1
1
1
1
1
1
1
2
0
0
1
1
1
1
1
1
1
1
2
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
4
0
1
1
1
1
1
2
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
3
3
3
0
0
0
5
1
1
1
1
1
1
1
1
2
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
6
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
2
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
5
1
0
1
1
0
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
0
1
1
1
1
0
1
1
0
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
0
13
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
1
1
1
1
1
1
5
0
0
1
1
2
0
1
1
1
1
1
1
5
0
0
1
0
5
0
1
1
1
1
1
1
1
2
1
0
2
1
1
1
1
0
5
0
1
1
1
1
1
1
1
2
1
0
2
2
1
1
1
1
1
1
1
1
2
5
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
2
1
1
1
1
1
1
1
1
1
1
5
0
0
2
1
1
1
1
1
1
1
5
0
0
2
1
1
1
1
1
1
1
1
1
0
0
2
0
0
0
2
1
1
1
1
1
1
1
2
0
1
0
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
5
0
0
0
1
2
0
0
1
1
1
1
1
1
5
0
0
0
1
2
0
0
1
1
1
1
1
4
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
11
3
3
3
3
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
3
3
3
3
3
3
13
1
1
1
1
1
1
1
1
1
1
2
1
3
3
3
0
0
0
5
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
2
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
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
0
2
2
2
1
1
1
1
1
1
1
2
2
2
1
1
1
1
1
1
1
1
1
1
1
1
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
4
0
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
2
1
1
1
1
2
0
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
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
1
2
1
2
2
1
1
0
1
2
1
1
2
2
0
1
1
1
1
1
1
2
5
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
0
1
1
0
1
1
0
0
1
5
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
5
1
5
5
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
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
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
5
0
0
2
1
1
1
0
1
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
2
0
1
2
1
1
1
1
0
2
2
1
2
1
2
0
1
1
1
1
0
1
1
1
1
4
1
1
0
1
2
1
1
1
1
2
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
6
1
1
0
2
1
0
2
1
1
1
1
2
1
1
2
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
2
1
0
2
1
1
1
1
1
1
0
1
1
1
1
6
1
1
1
2
1
0
2
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
2
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
2
3
3
3
3
3
3
13
1
1
1
1
1
1
0
1
1
1
1
1
1
0
2
0
1
1
1
1
2
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
2
1
2
2
1
0
1
1
1
1
1
1
1
2
1
1
1
1
1
0
2
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
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
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
4
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
3
3
11
3
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
2
0
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
2
1
1
1
0
1
1
1
1
1
1
1
1
13
0
0
0
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
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
2
1
0
1
1
1
1
1
1
1
1
1
1
1
1
2
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
6
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
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
2
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
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
0
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
1
1
1
1
1
1
1
1
0
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
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
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
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
9
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
9
2
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
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
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
0
0
1
1
1
1
1
1
1
1
1
1
1
1
2
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
2
1
1
1
1
1
1
1
1
0
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
11
3
3
3
3
1
1
1
1
0
1
1
1
1
0
28
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
2
1
0
1
1
1
1
1
1
1
1
2
0
0
13
0
0
0
1
1
1
1
1
1
1
1
13
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
5
1
1
1
1
0
2
2
1
1
1
1
1
1
0
1
1
1
0
0
0
0
7
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
13
0
5
5
0
1
1
1
1
1
1
1
1
1
1
1
5
5
1
1
1
2
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
0
2
2
1
1
1
1
1
1
1
1
1
0
2
5
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
2
1
1
1
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
2
1
1
0
1
1
1
1
2
1
1
2
0
0
1
1
2
1
1
1
1
2
1
1
1
2
1
2
0
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
0
7
0
0
1
0
1
1
1
1
1
1
1
1
1
2
7
0
1
1
0
1
1
0
1
1
1
0
0
2
1
1
1
7
0
1
1
0
1
1
0
1
1
1
1
1
0
2
2
1
1
1
7
0
1
1
0
1
1
0
1
1
1
1
1
5
7
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
5
5
5
5
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
0
1
1
0
0
1
2
1
1
1
1
1
1
0
1
1
1
1
1
0
2
1
1
2
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
2
1
1
1
0
1
1
1
1
1
1
1
0
1
1
2
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
2
1
1
5
13
0
1
1
0
0
5
0
1
1
1
0
1
1
13
0
0
5
5
1
1
1
1
13
0
0
0
1
1
1
1
1
1
0
13
0
1
1
5
5
1
1
5
1
1
2
1
1
1
1
1
1
1
1
1
1
1
4
4
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
0
0
1
0
4
1
1
1
1
1
1
2
1
4
1
1
1
1
1
1
1
2
2
4
1
1
2
1
1
4
1
0
0
1
1
1
2
0
4
1
1
1
1
1
1
1
1
4
2
1
1
1
2
1
1
1
1
2
1
1
1
1
1
1
2
1
1
2
1
1
1
1
0
4
4
1
2
1
1
1
1
4
1
4
2
2
1
1
1
4
1
1
1
1
1
2
1
4
4
4
1
2
1
1
1
2
1
5
1
1
1
0
1
0
0
1
2
1
2
1
2
5
1
1
0
2
2
0
1
1
2
2
1
1
1
1
2
1
4
1
1
1
1
2
1
0
1
1
1
1
2
0
0
1
0
1
1
4
1
2
1
1
1
1
1
1
1
1
0
1
0
1
4
4
1
1
1
1
1
1
1
2
2
1
2
2
2
2
4
1
2
2
2
0
4
1
1
0
1
1
0
1
2
2
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
2
0
1
4
1
1
1
2
1
0
1
1
1
1
1
0
4
1
1
0
1
1
1
0
2
0
0
1
0
4
1
0
1
1
2
1
1
1
1
1
1
4
4
1
1
2
0
0
1
1
0
1
1
1
1
1
0
4
1
0
0
1
1
0
1
1
2
1
1
1
0
0
2
1
1
1
2
1
1
1
1
1
4
1
1
1
1
2
1
0
2
1
1
1
2
1
1
1
1
1
4
1
1
0
1
0
1
1
2
2
0
1
1
1
1
1
1
2
0
0
4
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
2
2
1
2
1
0
0
4
1
1
1
1
1
1
1
1
1
1
1
1
2
1
0
1
0
4
1
1
1
2
1
1
1
0
1
1
1
2
5
1
0
0
1
1
4
2
1
1
1
1
1
1
0
1
0
0
1
4
1
1
2
1
1
1
1
0
1
1
4
4
1
1
4
4
1
1
4
4
4
4
1
1
4
4
1
1
4
4
4
4
1
1
4
4
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
4
0
4
1
0
1
1
0
0
4
1
1
1
0
0
4
1
1
1
1
1
1
1
4
1
2
0
0
4
4
0
1
1
4
4
4
1
4
4
4
4
1
1
0
0
4
4
1
1
0
4
4
4
4
1
1
4
4
4
3
3
3
4
1
4
4
1
2
0
1
1
1
1
1
1
4
1
4
4
4
1
2
1
1
4
4
4
4
1
1
1
4
1
1
1
1
1
1
1
4
4
4
1
1
2
5
1
2
0
1
1
4
4
4
1
1
4
4
4
4
4
1
4
1
2
0
1
1
1
1
1
1
1
4
4
1
1
3
4
4
3
3
4
1
1
4
4
1
1
1
4
4
1
1
1
1
1
1
0
1
1
4
4
4
0
1
1
1
1
1
1
1
2
2
1
1
0
1
0
1
0
4
2
1
1
0
1
0
1
0
4
1
1
1
1
1
1
1
0
0
4
2
1
0
1
0
1
1
1
1
1
4
4
1
1
0
1
0
1
1
1
1
1
4
1
1
1
0
1
1
0
2
1
1
1
1
1
1
4
1
1
1
1
1
1
1
4
4
1
1
1
1
1
1
4
4
4
4
4
4
1
1
4
1
1
4
1
1
4
1
1
1
4
1
1
1
2
4
1
1
1
1
1
1
4
0
1
1
1
1
1
4
4
1
4
1
2
1
1
1
1
1
1
1
4
4
1
2
1
1
0
0
1
0
1
1
1
1
1
1
4
4
1
0
0
1
0
1
1
1
1
1
1
4
4
1
1
0
0
1
0
1
1
1
1
1
1
4
4
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
4
4
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
4
4
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
4
4
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
4
4
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
4
4
0
1
1
0
0
1
1
1
1
1
1
1
1
1
2
1
0
1
0
1
1
4
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
4
3
3
3
0
1
0
1
0
1
1
1
2
2
2
1
2
1
1
1
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
4
1
1
1
2
2
1
2
1
2
0
0
1
1
1
1
4
1
4
1
1
1
1
1
1
1
4
4
1
3
3
3
1
1
1
1
1
1
1
1
1
1
1
4
0
1
1
1
4
1
1
1
4
4
1
1
1
1
1
1
4
2
1
1
1
1
1
1
0
0
4
4
0
1
2
1
1
2
1
1
1
1
1
1
4
1
0
2
2
1
1
1
1
1
1
4
1
1
0
1
1
1
1
1
1
4
1
0
0
1
1
1
1
1
2
1
1
1
1
4
1
1
2
4
1
1
4
1
1
1
1
4
4
1
1
1
1
1
1
4
1
1
1
1
1
1
4
2
1
1
1
1
4
1
2
1
1
1
1
4
1
4
1
2
1
2
1
2
2
1
1
1
2
1
1
4
1
2
1
2
1
2
2
1
1
2
1
1
1
2
2
2
1
5
1
2
1
1
4
1
2
0
0
1
5
1
1
1
4
4
4
4
4
1
1
1
1
1
1
4
0
1
1
1
1
1
1
2
0
0
1
1
1
1
1
1
1
1
1
1
4
0
13
0
1
1
4
1
0
1
1
4
1
0
1
1
4
1
4
1
1
4
4
4
4
1
1
4
1
4
4
1
1
4
1
4
0
4
4
1
1
1
0
1
1
4
1
4
0
1
1
4
1
1
1
1
1
1
1
1
1
4
4
1
1
1
1
1
1
1
1
2
1
1
4
1
1
1
1
1
1
4
4
4
1
1
1
4
4
1
4
4
1
1
0
1
1
4
4
1
1
0
1
1
4
0
13
0
1
1
4
0
1
1
4
0
1
1
4
4
1
0
1
4
2
1
2
1
2
1
0
0
0
4
4
4
13
0
0
4
5
1
1
13
0
4
4
4
13
4
4
1
1
1
1
1
1
1
2
1
2
2
1
1
1
1
1
1
2
1
1
1
5
1
2
1
1
2
1
1
1
1
0
2
1
1
1
0
1
2
1
1
4
0
1
2
1
1
4
1
2
1
0
1
2
1
1
1
1
1
2
1
1
2
1
2
1
1
2
1
2
1
1
2
1
2
1
1
2
1
2
1
2
1
2
0
0
1
1
1
1
1
1
1
1
1
2
1
2
1
2
1
2
0
0
1
1
1
1
1
1
1
1
1
2
1
2
1
1
5
1
1
0
0
1
2
2
2
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
0
2
1
1
1
2
1
1
1
1
1
2
1
1
1
1
1
2
2
1
1
1
2
1
1
1
1
1
2
2
1
1
1
2
1
1
1
1
1
1
0
2
1
1
2
1
1
1
1
1
1
0
0
1
1
1
2
1
1
1
1
2
1
1
1
1
2
1
1
0
1
1
0
2
1
1
0
1
1
2
1
1
1
1
1
0
0
1
1
2
1
1
1
2
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
2
1
2
0
2
2
1
1
1
0
0
0
1
1
1
1
1
0
2
1
1
0
0
1
2
1
1
1
1
1
2
0
1
1
1
1
1
2
1
1
1
1
1
0
2
1
1
1
1
1
1
1
2
1
1
1
1
2
1
1
1
1
1
0
2
1
1
0
0
1
0
1
7
1
1
1
1
1
1
1
0
1
0
1
0
1
7
1
1
1
1
1
1
2
7
0
1
0
1
0
1
1
1
1
7
0
1
0
1
0
1
1
1
2
2
1
1
1
7
0
1
0
1
0
1
7
1
1
1
1
1
1
0
1
0
1
0
1
7
1
0
0
0
1
1
1
1
1
2
1
1
0
2
0
2
1
1
1
1
0
1
1
1
7
7
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
2
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
5
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
4
4
1
1
1
1
1
1
1
6
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
2
1
0
0
1
2
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
2
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
4
4
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
2
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
4
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
2
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
2
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
2
0
0
1
0
1
1
1
1
1
1
2
0
0
1
1
1
1
0
2
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
2
2
1
2
2
1
1
2
0
1
2
2
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
2
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
4
1
0
1
1
0
1
1
0
7
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
2
1
2
1
2
1
2
2
2
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
5
13
0
0
1
0
1
1
1
0
0
1
1
0
1
1
13
0
0
0
5
1
1
1
2
1
0
1
5
13
5
1
1
0
2
1
0
1
0
1
1
1
1
1
1
1
0
0
0
13
1
1
1
1
1
1
1
0
0
0
13
1
1
5
0
0
0
1
1
5
0
0
0
1
0
1
1
5
1
0
0
1
5
4
0
0
1
0
1
1
1
1
1
1
5
1
5
1
1
1
1
1
1
1
4
2
2
1
1
1
1
5
1
1
1
1
1
1
1
1
1
1
1
1
1
5
1
1
1
1
2
1
1
1
1
1
1
1
3
11
3
3
3
1
1
1
1
1
1
1
1
1
2
11
3
3
3
3
1
1
1
1
1
1
1
1
1
1
1
2
11
3
3
3
3
1
1
1
1
1
1
1
1
1
1
2
3
3
3
3
3
3
13
1
1
2
2
1
1
1
1
13
3
3
3
3
3
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
3
3
3
3
3
3
13
2
1
1
1
1
1
1
1
1
1
13
3
3
3
3
3
3
1
1
1
1
1
1
1
1
3
3
3
3
3
3
3
3
3
3
3
9
3
3
1
1
1
1
1
1
3
3
3
3
3
3
3
3
3
9
1
1
1
1
1
1
1
1
0
3
3
3
3
3
3
3
3
3
3
3
3
3
1
0
0
1
3
3
3
1
1
3
1
3
3
1
1
1
1
1
4
1
3
3
3
1
1
1
1
1
1
1
2
1
2
5
0
0
1
1
1
1
1
5
0
0
2
1
3
3
3
1
1
1
1
4
1
1
1
1
1
1
1
1
0
5
1
3
3
3
0
0
2
1
2
2
2
1
1
2
1
1
0
1
0
1
1
1
3
3
3
1
3
3
1
1
1
1
1
1
3
1
3
3
1
1
1
1
1
1
4
1
1
1
1
1
1
1
1
1
2
1
3
3
3
0
0
0
5
1
1
1
1
1
1
6
3
2
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
0
2
0
1
3
3
1
0
1
1
1
3
1
1
0
1
1
1
1
1
1
6
3
1
1
0
1
1
1
1
0
1
1
1
1
0
1
2
1
0
1
1
1
1
3
1
1
1
1
0
4
1
1
1
1
1
1
3
2
0
1
0
1
1
1
1
1
3
1
1
1
1
1
1
1
1
1
1
1
1
3
2
2
1
1
1
1
2
1
2
5
0
0
2
1
1
1
1
1
1
3
3
3
0
1
5
0
0
0
3
1
1
2
2
9
9
9
1
1
1
1
1
1
2
0
0
1
1
2
2
1
1
1
1
1
2
5
1
1
1
1
1
2
2
1
1
1
1
0
1
2
1
2
1
0
1
1
1
1
1
1
1
2
1
1
4
4
1
1
1
1
2
1
1
1
1
1
1
3
3
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
4
1
1
1
1
1
1
1
2
1
2
1
1
1
1
1
1
1
2
1
2
2
1
1
2
1
1
1
1
2
1
1
1
1
1
1
2
2
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
2
2
2
1
0
0
1
1
2
1
0
0
1
1
2
1
1
0
0
1
1
2
1
1
2
1
1
1
1
2
2
1
1
1
1
1
1
2
2
1
1
1
1
1
1
2
1
1
1
2
1
1
1
2
2
1
1
1
2
0
1
1
5
1
2
1
2
2
2
1
1
5
1
1
1
2
2
5
2
0
0
1
1
1
1
1
1
1
1
1
2
1
2
2
2
2
0
0
1
1
2
2
2
2
1
5
0
0
2
2
2
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
2
1
0
1
1
1
2
1
1
2
1
0
2
1
1
2
0
1
1
1
1
1
1
2
1
2
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
2
0
1
1
1
1
1
1
1
1
2
1
1
0
0
2
2
2
1
1
0
0
2
2
2
1
0
2
1
1
1
1
2
1
0
0
1
2
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
2
0
1
0
1
2
0
2
1
5
2
1
1
1
2
1
5
2
2
1
5
2
2
1
5
2
2
1
5
2
2
1
5
2
1
2
0
1
2
0
1
0
5
1
1
2
1
0
1
2
1
1
1
0
2
2
1
1
1
1
1
1
0
1
1
2
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
2
2
1
1
1
1
1
1
5
0
0
0
5
0
0
0
2
4
1
1
1
1
1
1
2
1
4
1
1
1
1
1
2
1
1
1
1
1
1
1
5
0
0
0
2
1
0
5
0
1
1
1
1
1
1
2
1
1
1
1
1
1
2
1
1
2
1
1
1
5
0
0
2
1
0
2
1
1
1
1
1
0
1
1
1
1
1
1
1
1
2
1
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
0
1
0
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
2
0
1
0
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
2
2
1
1
2
0
1
1
1
1
1
1
1
2
0
1
1
1
1
1
2
1
1
1
1
1
2
1
1
1
2
1
1
2
4
2
2
2
1
1
2
2
1
2
1
2
1
1
1
1
1
1
2
1
1
1
1
1
1
2
2
2
2
2
2
1
1
1
1
1
1
2
2
1
2
2
2
2
1
5
1
1
1
5
1
1
1
2
0
0
0
2
0
0
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
1
2
1
2
1
1
1
1
1
1
1
2
1
2
2
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
2
1
1
1
2
1
1
1
1
1
1
2
2
1
1
1
1
1
1
2
2
0
1
1
1
1
1
1
1
2
1
1
1
2
0
1
2
1
1
2
0
1
1
1
1
2
1
1
2
1
1
0
1
1
0
0
1
1
2
1
1
0
0
1
1
2
0
5
0
0
0
2
2
2
2
1
2
1
2
2
2
1
2
1
2
13
0
5
2
0
1
1
13
0
5
2
0
1
1
5
2
1
2
1
1
1
1
1
1
1
1
0
0
2
0
1
1
4
1
1
1
1
1
1
1
1
1
1
1
5
2
0
0
4
2
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
5
2
0
0
4
2
1
1
1
1
1
0
1
0
0
5
5
1
1
2
1
1
1
2
1
1
0
0
0
0
2
4
0
5
0
1
1
1
1
1
1
5
0
0
2
4
2
1
2
5
0
0
2
0
5
0
0
2
0
1
1
0
1
1
2
1
1
0
1
1
2
1
1
0
1
1
0
1
1
1
1
1
1
13
0
1
1
1
1
1
1
0
1
1
1
1
1
1
41
2
0
0
0
2
0
0
0
0
0
0
0
0
0
19
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
2
0
0
0
1
0
1
13
0
0
0
13
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
2
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
2
1
1
1
1
0
5
0
0
0
0
0
0
0
3
11
3
3
2
2
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
41
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
2
1
1
1
1
5
2
1
1
1
0
0
0
1
1
1
1
1
1
1
2
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
2
1
1
1
1
1
1
1
1
1
5
0
0
0
0
0
1
1
1
1
1
2
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
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
0
0
0
0
0
0
28
28
0
0
28
0
0
28
0
0
28
0
0
28
0
0
28
0
0
28
0
0
28
0
0
0
0
1
1
1
0
5
0
0
0
1
0
1
0
5
0
0
0
0
5
0
0
0
1
0
5
0
0
1
1
1
1
0
5
0
0
0
1
0
1
0
5
0
0
0
5
0
0
0
5
0
0
0
0
0
28
0
0
0
0
28
28
0
0
0
0
28
28
0
0
0
0
28
28
28
0
0
0
1
1
0
28
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
4
1
1
2
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
6
0
0
1
1
6
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
2
1
2
2
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
2
2
0
0
2
0
0
2
1
2
0
0
2
0
0
2
0
0
0
1
1
1
0
1
1
0
2
0
0
1
1
1
0
0
1
0
2
0
0
1
1
1
1
1
1
1
2
0
0
1
0
0
1
1
1
1
1
1
1
2
0
0
0
0
1
1
1
1
1
1
1
1
1
1
2
0
0
2
0
0
1
0
0
1
1
1
1
1
1
2
0
0
1
3
3
3
1
1
1
1
1
1
2
0
0
0
2
0
1
1
1
1
1
1
3
3
3
4
1
0
21
0
1
1
1
1
1
1
0
2
0
0
0
2
0
0
1
1
1
1
1
1
4
1
1
0
1
0
1
1
1
1
1
4
4
2
0
0
4
1
1
1
2
0
0
1
1
1
0
1
1
1
0
2
1
0
1
4
4
1
1
1
1
1
1
2
0
0
0
1
0
1
1
1
1
1
1
2
0
0
1
1
1
2
0
0
1
1
1
1
0
2
0
2
1
1
1
1
1
1
4
0
0
2
1
1
1
1
1
1
4
0
2
0
0
1
1
1
1
1
2
1
3
1
3
3
1
1
1
1
1
1
2
0
0
0
2
0
1
1
1
1
1
1
1
2
1
1
2
1
1
2
1
1
2
0
0
0
2
0
0
1
1
2
1
1
0
2
0
0
1
1
0
2
0
0
0
7
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
2
5
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
2
2
1
1
0
0
9
9
9
0
0
1
1
2
1
1
0
1
1
1
1
1
1
1
1
0
1
2
1
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
0
0
13
2
1
0
5
0
0
1
1
1
13
2
1
0
5
0
0
1
1
1
7
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
5
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
4
4
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
4
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
2
1
1
2
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
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
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
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
0
0
1
1
0
0
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
1
0
0
1
1
1
1
1
1
1
1
4
1
0
1
1
1
1
1
1
4
4
4
4
1
1
1
1
1
1
1
0
1
0
4
4
1
1
1
1
1
1
1
0
1
0
1
4
0
1
1
1
1
1
1
3
1
0
0
4
1
1
1
1
1
1
1
1
1
0
0
4
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
0
2
1
0
1
1
1
1
1
1
0
2
2
1
0
1
1
1
1
1
0
2
2
1
0
2
1
1
1
1
1
1
1
2
1
0
0
1
1
1
1
1
1
1
0
1
2
0
1
1
1
2
1
1
2
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
5
1
0
1
1
2
1
1
1
1
1
1
1
2
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
1
1
0
1
2
0
1
0
1
0
2
1
1
1
1
1
1
1
1
1
1
0
0
9
9
9
2
1
0
1
0
1
1
0
1
1
0
1
1
2
0
1
1
1
1
1
1
1
0
0
9
9
9
0
1
2
1
1
1
1
1
1
1
3
3
3
2
1
1
0
1
2
1
1
1
1
1
1
1
3
3
3
2
1
1
1
0
2
2
1
1
1
0
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
1
1
0
1
5
2
1
1
0
0
2
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
0
5
2
1
1
1
1
2
2
2
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
5
1
1
2
0
0
1
2
0
1
2
2
1
1
1
0
0
1
1
0
1
1
1
1
0
0
2
2
1
1
1
1
1
1
2
1
5
2
1
2
1
1
1
1
1
4
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
2
1
1
1
2
0
1
1
1
1
1
1
3
1
1
0
1
1
1
0
0
1
2
1
1
1
1
2
1
1
1
1
1
1
0
0
1
1
1
1
0
0
2
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
0
1
0
0
1
4
2
1
1
1
1
1
1
1
0
0
1
1
1
1
1
4
3
3
1
1
1
1
2
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
2
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
0
0
1
0
0
1
0
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
5
5
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
5
1
1
1
1
1
1
1
0
5
1
1
0
2
1
1
0
2
1
1
0
2
1
1
0
0
1
0
0
2
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
2
1
1
1
1
1
0
1
2
4
4
0
3
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
5
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
5
1
1
0
0
1
5
1
1
1
1
1
1
4
3
2
2
2
1
1
1
1
5
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
2
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
2
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
2
2
1
1
1
1
1
1
1
1
1
1
4
3
1
3
3
3
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
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
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
13
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
2
1
1
1
1
1
1
1
0
5
1
1
0
1
2
1
1
1
1
1
1
5
1
1
1
1
1
1
0
1
1
1
1
0
0
1
2
1
1
1
2
1
0
1
1
1
1
0
1
1
2
1
1
1
1
1
1
2
0
1
1
1
1
1
1
2
1
2
1
1
1
1
1
0
0
1
1
1
1
1
1
1
2
1
0
1
2
1
0
2
1
1
1
2
2
1
0
2
5
1
1
1
1
2
1
1
1
2
2
1
0
2
5
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
2
2
1
1
1
1
0
1
1
1
1
1
1
1
1
0
2
1
5
2
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
2
1
0
2
1
1
0
1
2
1
5
2
1
1
1
1
1
1
0
0
2
1
1
1
1
0
0
4
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
4
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
2
1
1
0
1
1
1
0
2
1
1
1
1
0
0
1
2
1
1
1
1
1
1
2
1
1
0
1
1
2
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
2
1
1
0
1
1
4
2
4
1
1
1
2
1
0
2
1
0
1
1
1
0
2
1
0
0
1
1
1
2
1
1
1
1
1
1
0
0
1
1
2
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
2
1
0
2
1
1
1
1
2
1
0
2
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
2
1
0
2
1
0
1
1
1
1
1
2
2
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
2
0
0
2
2
1
1
1
0
1
1
0
1
1
1
1
1
2
2
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
4
4
4
4
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
2
1
0
1
1
1
1
1
0
0
0
0
1
1
1
2
1
1
2
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
2
2
1
1
1
1
1
1
1
0
1
1
1
1
1
2
1
1
1
1
1
1
0
0
1
1
1
1
1
1
2
1
1
1
1
1
1
0
0
1
4
1
1
2
1
1
1
1
1
1
0
0
1
0
0
1
1
1
2
1
2
1
2
1
0
2
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
4
1
5
0
0
1
0
1
1
3
3
3
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
5
0
0
1
2
0
0
0
1
1
2
1
0
1
1
1
2
1
1
1
1
1
1
1
1
2
2
2
1
1
1
1
1
1
1
0
2
2
2
1
1
1
1
1
1
1
0
1
1
1
0
2
5
0
0
1
1
1
1
1
0
1
2
1
1
1
1
1
1
1
1
0
1
2
1
1
0
1
0
2
1
1
1
1
2
0
2
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
0
1
0
1
1
1
1
2
1
1
1
1
2
1
2
2
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
6
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
4
1
1
4
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
5
1
2
1
0
1
1
0
1
1
0
2
1
1
1
1
1
1
0
2
0
1
1
1
1
1
0
0
1
2
2
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
2
0
1
2
1
1
1
1
1
1
2
0
2
1
1
1
1
0
1
1
1
1
2
0
0
2
2
1
1
1
1
0
2
2
1
1
1
1
0
2
2
1
1
1
1
1
0
2
2
1
1
0
1
1
1
1
1
2
1
1
2
1
1
1
1
2
4
1
1
1
1
1
1
1
1
1
0
13
0
0
0
0
13
0
0
0
1
1
1
1
2
1
1
1
1
0
1
1
13
2
0
0
0
1
1
0
13
0
1
0
1
0
1
1
1
1
1
1
13
0
0
0
13
0
1
0
1
0
1
13
1
1
1
0
0
0
0
0
2
1
1
1
1
0
13
0
1
0
1
13
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
2
13
1
5
5
0
0
0
1
1
1
1
1
1
4
1
1
1
1
1
1
5
0
0
5
1
1
1
1
1
0
0
5
0
0
2
1
0
2
2
1
2
1
2
1
0
1
1
1
5
1
1
1
2
2
2
1
1
2
1
1
1
0
0
2
2
0
0
1
0
0
1
1
1
1
1
1
1
5
2
1
1
1
1
0
1
1
2
2
0
0
1
1
1
2
1
1
2
2
1
1
1
1
1
5
1
2
5
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
0
2
0
1
1
1
1
1
1
5
0
0
0
2
2
1
1
1
1
0
2
2
1
1
1
1
0
0
0
1
1
1
1
1
1
5
0
0
0
5
2
0
0
0
0
1
1
1
1
1
1
1
1
1
2
5
0
0
0
0
5
0
0
0
0
1
1
5
0
0
0
0
1
1
1
1
1
1
1
1
5
1
1
1
2
1
0
0
0
1
1
0
4
4
0
0
5
1
1
1
1
1
1
1
4
0
0
5
1
1
1
1
1
1
1
4
0
0
5
0
0
1
1
1
1
1
0
5
0
1
0
1
1
0
2
1
1
1
1
1
1
5
0
0
2
5
13
1
5
0
0
0
2
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
5
0
0
2
4
1
1
1
1
1
1
5
0
0
2
0
1
3
3
3
5
1
1
1
1
1
0
0
5
0
0
2
1
2
2
1
5
2
0
0
5
1
2
1
1
0
0
5
0
0
1
1
1
1
1
1
0
5
0
1
1
1
1
0
5
0
1
1
1
1
5
1
1
1
1
0
0
0
5
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
2
1
2
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
4
1
1
1
1
4
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
4
1
1
1
4
1
0
0
1
1
1
2
1
1
1
0
1
0
0
1
1
1
0
2
1
0
2
1
0
1
0
1
1
1
1
1
1
2
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
2
1
1
1
1
1
1
1
0
0
2
0
1
0
0
1
1
1
1
4
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
2
2
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
5
5
0
1
0
1
2
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
2
2
2
1
1
1
1
1
0
1
1
1
3
1
1
3
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
2
1
1
2
1
2
0
0
0
0
1
1
1
1
0
0
0
0
2
1
1
1
1
0
1
1
1
0
0
5
0
0
0
1
1
1
0
1
1
0
1
1
0
1
2
1
1
1
2
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
2
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
2
1
1
1
1
1
1
0
5
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
2
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
4
1
1
1
1
1
1
1
2
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
5
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
6
1
6
0
1
1
1
0
1
6
1
6
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
2
1
1
1
0
1
0
1
1
2
1
1
1
1
2
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
2
1
1
0
1
0
1
0
2
1
1
0
1
0
1
0
0
1
1
0
1
4
0
1
1
0
1
4
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
4
4
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
2
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
2
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
2
1
1
0
1
1
0
0
1
1
2
1
1
0
1
1
0
0
2
2
1
1
1
0
1
0
0
0
0
1
0
0
2
1
1
2
2
1
1
1
1
1
1
0
2
2
1
1
1
1
1
1
0
1
1
0
1
1
0
2
1
1
1
1
1
1
1
0
1
1
2
1
1
0
1
1
0
0
0
1
1
0
1
1
1
2
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
2
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
5
1
1
0
1
1
0
1
1
0
5
1
1
0
1
1
0
1
5
5
0
1
2
1
0
2
1
0
2
2
1
1
0
0
13
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
5
0
0
0
5
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
5
0
0
0
1
1
1
5
1
0
0
0
1
1
1
1
1
4
5
5
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
2
5
4
4
2
1
5
2
1
1
1
1
1
1
1
5
5
0
1
1
1
2
1
5
2
1
1
1
5
1
2
1
1
2
5
1
2
1
1
2
5
13
0
1
1
1
1
1
1
2
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
5
1
1
0
1
5
0
1
5
