512
512
4
4
1
1
1
4
-1
-1
4
4
1
1
4
1
4
-1
-1
4
1
1
1
1
1
1
2
4
4
1
4
-1
-1
1
4
1
1
512
4
3
3
1
4
-1
-1
512
4
3
3
512
1
512
-1
-1
4
1
1
1
1
1
1
2
512
4
1
512
-1
-1
1
512
1
1
1
512
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
512
-1
-1
1
32
-1
4
512
1
1
1
512
-1
-1
512
1
1
512
1
1
1
512
-1
-1
512
1
1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
512
512
3
3
1
512
-1
-1
512
512
3
3
512
1
512
-1
-1
4
1
1
1
1
1
1
2
512
4
1
512
-1
-1
1
512
1
1
1
512
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
512
-1
-1
1
32
-1
4
512
1
1
1
512
-1
-1
512
1
1
512
1
1
1
512
-1
-1
512
1
1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
512
512
3
3
1
512
-1
-1
512
512
3
3
512
1
512
-1
-1
4
1
1
1
1
1
1
2
512
4
1
512
-1
-1
1
512
1
1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
512
-1
-1
1
32
-1
4
512
1
1
1
512
-1
-1
512
1
1
512
1
1
1
512
-1
-1
512
1
1
1
512
-1
-1
4
1
1
512
-1
-1
4
1
1
512
-1
-1
4
1
512
-1
-1
4
1
1
1
1
1
512
-1
-1
3
512
512
1
512
-1
512
512
512
1
-1
512
1
-1
512
3
1
1
-1
512
3
1
1
-1
512
3
1
1
1
1
1
1
-1
512
4
1
-1
1
512
4
1
1
1
1
1
1
1
1
-1
512
3
512
512
512
1
512
-1
512
512
512
1
-1
512
1
-1
512
3
1
1
-1
512
3
1
1
-1
512
3
1
1
1
1
1
1
-1
512
4
1
-1
1
512
4
1
1
1
1
1
1
1
1
-1
512
3
1
-1
512
1
-1
512
1
-1
-1
1
-1
512
3
1
1
-1
512
3
1
1
-1
512
3
1
1
1
1
3
1
-1
-1
1
-1
-1
1
-1
-1
1
-1
-1
1
-1
-1
1
-1
-1
512
512
512
1
512
-1
512
512
512
1
-1
512
1
-1
512
3
1
1
-1
512
3
1
1
-1
512
3
1
1
1
1
1
1
-1
512
4
1
-1
1
512
4
1
1
1
1
1
1
1
1
-1
512
3
1
-1
-1
1
-1
512
1
-1
512
3
1
1
-1
512
3
1
1
-1
512
3
1
1
1
1
1
1
-1
512
4
1
1
-1
512
4
1
1
1
1
1
1
1
-1
1
512
3
512
512
1
-1
512
512
512
512
1
-1
512
1
-1
512
3
1
1
1
1
1
1
1
1
1
512
-1
4
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
512
-1
-1
1
32
-1
4
512
1
1
1
512
-1
-1
512
1
1
512
1
1
1
512
-1
-1
512
1
1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
512
512
3
3
1
512
-1
-1
512
512
3
3
512
1
512
-1
-1
4
1
1
1
1
1
1
2
512
4
1
512
-1
-1
1
512
1
1
1
512
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
512
-1
-1
1
32
-1
4
512
1
1
1
512
-1
-1
512
1
1
512
1
1
1
512
-1
-1
512
1
1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
512
512
3
3
1
512
-1
-1
512
512
3
3
512
1
512
-1
-1
4
1
1
1
1
1
1
2
512
4
1
512
-1
-1
1
512
1
1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
512
-1
-1
1
32
-1
4
512
1
1
1
512
-1
-1
512
1
1
512
1
1
1
512
-1
-1
512
1
1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
512
512
3
3
1
512
-1
-1
512
512
3
3
512
1
512
-1
-1
4
1
1
1
1
1
1
2
512
4
1
512
-1
-1
1
512
1
1
1
512
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
512
-1
-1
1
32
-1
4
512
1
1
1
512
-1
-1
512
1
1
512
1
1
1
512
-1
-1
512
1
1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
512
512
3
3
1
512
-1
-1
512
512
3
3
512
1
512
-1
-1
4
1
1
1
1
1
1
2
512
4
1
512
-1
-1
1
512
1
1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
512
-1
-1
1
32
-1
4
512
1
1
1
512
-1
-1
512
1
1
512
1
1
1
512
-1
-1
512
1
1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
512
512
3
3
1
512
-1
-1
512
512
3
3
512
1
512
-1
-1
4
1
1
1
1
1
1
2
512
4
1
512
-1
-1
1
512
1
1
1
512
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
512
-1
-1
1
32
-1
4
512
1
1
1
512
-1
-1
512
1
1
512
1
1
1
512
-1
-1
512
1
1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
512
512
3
3
1
512
-1
-1
512
512
3
3
512
1
512
-1
-1
4
1
1
1
1
1
1
2
512
4
1
512
-1
-1
1
512
1
1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
512
-1
-1
1
32
-1
4
512
1
1
1
512
-1
-1
512
1
1
512
1
1
1
512
-1
-1
512
1
1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
512
512
3
3
1
512
-1
-1
512
512
3
3
512
1
512
-1
-1
4
1
1
1
1
1
1
2
512
4
1
512
-1
-1
1
512
1
1
1
512
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
512
-1
-1
1
32
-1
4
512
1
1
1
512
-1
-1
512
1
1
512
1
1
1
512
-1
-1
512
1
1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
512
512
3
3
1
512
-1
-1
512
512
3
3
512
1
512
-1
-1
4
1
1
1
1
1
1
2
512
4
1
512
-1
-1
1
512
1
1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
4
4
4
4
1
512
-1
-1
4
4
512
512
3
3
1
512
-1
-1
512
512
3
3
512
1
512
-1
-1
4
1
1
1
1
1
1
2
512
4
1
512
-1
-1
1
512
1
1
1
512
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
512
-1
-1
1
32
-1
4
512
1
1
1
512
-1
-1
512
1
1
512
1
1
1
512
-1
-1
512
1
1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
512
512
3
3
1
512
-1
-1
512
512
3
3
512
1
512
-1
-1
4
1
1
1
1
1
1
2
512
4
1
512
-1
-1
1
512
1
1
1
512
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
512
-1
-1
1
32
-1
4
512
1
1
1
512
-1
-1
512
1
1
512
1
1
1
512
-1
-1
512
1
1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
512
512
3
3
1
512
-1
-1
512
512
3
3
512
1
512
-1
-1
4
1
1
1
1
1
1
2
512
4
1
512
-1
-1
1
512
1
1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
512
-1
-1
1
32
-1
4
512
1
1
1
512
-1
-1
512
1
1
512
1
1
1
512
-1
-1
512
1
1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
512
512
3
3
1
512
-1
-1
512
512
3
3
512
1
512
-1
-1
4
1
1
1
1
1
1
2
512
4
1
512
-1
-1
1
512
1
1
1
512
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
512
-1
-1
1
32
-1
4
512
1
1
1
512
-1
-1
512
1
1
512
1
1
1
512
-1
-1
512
1
1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
512
512
3
3
1
512
-1
-1
512
512
3
3
512
1
512
-1
-1
4
1
1
1
1
1
1
2
512
4
1
512
-1
-1
1
512
1
1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
512
-1
-1
1
32
-1
4
512
1
1
1
512
-1
-1
512
1
1
512
1
1
1
512
-1
-1
512
1
1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
512
512
3
3
1
512
-1
-1
512
512
3
3
512
1
512
-1
-1
4
1
1
1
1
1
1
2
512
4
1
512
-1
-1
1
512
1
1
1
512
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
512
-1
-1
1
32
-1
4
512
1
1
1
512
-1
-1
512
1
1
512
1
1
1
512
-1
-1
512
1
1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
512
512
3
3
1
512
-1
-1
512
512
3
3
512
1
512
-1
-1
4
1
1
1
1
1
1
2
512
4
1
512
-1
-1
1
512
1
1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
4
4
4
4
1
512
-1
-1
4
4
512
512
3
3
1
512
-1
-1
512
512
3
3
512
1
512
-1
-1
4
1
1
1
1
1
1
2
512
4
1
512
-1
-1
1
512
1
1
256
512
1
1
1
512
-1
-1
256
512
1
1
256
1
256
-1
-1
4
1
1
1
1
1
1
2
256
4
1
256
-1
-1
1
256
1
1
1
512
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
512
-1
-1
1
32
-1
4
512
1
1
1
512
-1
-1
512
1
1
512
1
1
1
512
-1
-1
512
1
1
1
512
-1
-1
1
512
-1
-1
1
512
-1
-1
256
512
3
3
1
512
-1
-1
256
512
3
3
256
1
256
-1
-1
4
1
1
1
1
1
1
2
256
4
1
256
-1
-1
1
256
1
1
1
256
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
256
-1
-1
1
32
-1
4
256
1
1
1
256
-1
-1
256
1
1
256
1
1
1
256
-1
-1
256
1
1
1
256
-1
-1
1
256
-1
-1
1
256
-1
-1
256
256
3
3
1
256
-1
-1
256
256
3
3
256
1
256
-1
-1
4
1
1
1
1
1
1
2
256
4
1
256
-1
-1
1
256
1
1
1
256
-1
-1
1
256
-1
-1
1
256
-1
-1
1
256
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
256
-1
-1
1
32
-1
4
256
1
1
1
256
-1
-1
256
1
1
256
1
1
1
256
-1
-1
256
1
1
1
256
-1
-1
1
256
-1
-1
1
256
-1
-1
256
256
3
3
1
256
-1
-1
256
256
3
3
256
1
256
-1
-1
4
1
1
1
1
1
1
2
256
4
1
256
-1
-1
1
256
1
1
1
256
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
256
-1
-1
1
32
-1
4
256
1
1
1
256
-1
-1
256
1
1
256
1
1
1
256
-1
-1
256
1
1
1
256
-1
-1
1
256
-1
-1
1
256
-1
-1
256
256
3
3
1
256
-1
-1
256
256
3
3
256
1
256
-1
-1
4
1
1
1
1
1
1
2
256
4
1
256
-1
-1
1
256
1
1
1
256
-1
-1
1
256
-1
-1
1
256
-1
-1
1
256
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
256
-1
-1
1
32
-1
4
256
1
1
1
256
-1
-1
256
1
1
256
1
1
1
256
-1
-1
256
1
1
1
256
-1
-1
1
256
-1
-1
1
256
-1
-1
256
256
3
3
1
256
-1
-1
256
256
3
3
256
1
256
-1
-1
4
1
1
1
1
1
1
2
256
4
1
256
-1
-1
1
256
1
1
1
256
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
256
-1
-1
1
32
-1
4
256
1
1
1
256
-1
-1
256
1
1
256
1
1
1
256
-1
-1
256
1
1
1
256
-1
-1
1
256
-1
-1
1
256
-1
-1
256
256
3
3
1
256
-1
-1
256
256
3
3
256
1
256
-1
-1
4
1
1
1
1
1
1
2
256
4
1
256
-1
-1
1
256
1
1
1
256
-1
-1
1
256
-1
-1
1
256
-1
-1
1
256
-1
-1
4
4
4
4
1
256
-1
-1
4
4
256
256
3
3
1
256
-1
-1
256
256
3
3
256
1
256
-1
-1
4
1
1
1
1
1
1
2
256
4
1
256
-1
-1
1
256
1
1
128
256
1
1
1
256
-1
-1
128
256
1
1
128
1
128
-1
-1
4
1
1
1
1
1
1
2
128
4
1
128
-1
-1
1
128
1
1
1
256
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
256
-1
-1
1
32
-1
4
256
1
1
1
256
-1
-1
256
1
1
256
1
1
1
256
-1
-1
256
1
1
1
256
-1
-1
1
256
-1
-1
1
256
-1
-1
128
256
3
3
1
256
-1
-1
128
256
3
3
128
1
128
-1
-1
4
1
1
1
1
1
1
2
128
4
1
128
-1
-1
1
128
1
1
1
128
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
128
-1
-1
1
32
-1
4
128
1
1
1
128
-1
-1
128
1
1
128
1
1
1
128
-1
-1
128
1
1
1
128
-1
-1
1
128
-1
-1
1
128
-1
-1
128
128
3
3
1
128
-1
-1
128
128
3
3
128
1
128
-1
-1
4
1
1
1
1
1
1
2
128
4
1
128
-1
-1
1
128
1
1
1
128
-1
-1
1
128
-1
-1
1
128
-1
-1
1
128
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
128
-1
-1
1
32
-1
4
128
1
1
1
128
-1
-1
128
1
1
128
1
1
1
128
-1
-1
128
1
1
1
128
-1
-1
1
128
-1
-1
1
128
-1
-1
128
128
3
3
1
128
-1
-1
128
128
3
3
128
1
128
-1
-1
4
1
1
1
1
1
1
2
128
4
1
128
-1
-1
1
128
1
1
1
128
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
128
-1
-1
1
32
-1
4
128
1
1
1
128
-1
-1
128
1
1
128
1
1
1
128
-1
-1
128
1
1
1
128
-1
-1
1
128
-1
-1
1
128
-1
-1
128
128
3
3
1
128
-1
-1
128
128
3
3
128
1
128
-1
-1
4
1
1
1
1
1
1
2
128
4
1
128
-1
-1
1
128
1
1
1
128
-1
-1
1
128
-1
-1
1
128
-1
-1
1
128
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
128
-1
-1
1
32
-1
4
128
1
1
1
128
-1
-1
128
1
1
128
1
1
1
128
-1
-1
128
1
1
1
128
-1
-1
1
128
-1
-1
1
128
-1
-1
128
128
3
3
1
128
-1
-1
128
128
3
3
128
1
128
-1
-1
4
1
1
1
1
1
1
2
128
4
1
128
-1
-1
1
128
1
1
1
128
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
128
-1
-1
1
32
-1
4
128
1
1
1
128
-1
-1
128
1
1
128
1
1
1
128
-1
-1
128
1
1
1
128
-1
-1
1
128
-1
-1
1
128
-1
-1
128
128
3
3
1
128
-1
-1
128
128
3
3
128
1
128
-1
-1
4
1
1
1
1
1
1
2
128
4
1
128
-1
-1
1
128
1
1
1
128
-1
-1
1
128
-1
-1
1
128
-1
-1
1
128
-1
-1
3
1
32
-1
1
32
1
32
-1
3
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
32
1
1
1
1
1
1
1
32
3
1
32
-1
1
32
1
1
128
-1
-1
1
32
-1
4
128
1
1
1
128
-1
-1
128
1
1
128
1
1
1
128
-1
-1
128
1
1
1
128
-1
-1
1
128
-1
-1
1
128
-1
-1
3
128
3
3
1
128
-1
-1
3
128
3
3
3
1
3
-1
-1
4
1
1
1
1
1
1
2
3
4
1
3
-1
-1
1
3
1
1
1
3
-1
-1