1
3
256
256
32
3
3
3
32
1
32
256
256
4
1
1
1
1
1
1
2
32
4
1
32
256
256
1
32
1
1
1
32
256
256
1
32
256
256
4
1
256
256
32
1
1
256
256
1
256
256
4
1
32
256
256
1
1
256
256
1
32
256
256
1
32
256
256
4
1
32
256
256
1
32
256
256
1
32
256
256
4
1
256
256
32
1
1
256
256
1
256
256
1
256
256
1
256
256
4
1
256
256
1
1
256
256
1
1
256
256
32
1
256
256
1
1
256
256
32
1
1
1
32
1
256
256
32
1
1
1
32
1
256
256
32
4
1
32
256
256
64
32
1
1
64
1
64
256
256
4
1
1
1
1
1
1
2
64
4
1
64
256
256
1
64
1
1
64
1
3
3
4
2
1
1
1
1
3
64
1
3
3
5
1
64
256
256
64
1
1
3
3
64
1
64
256
256
4
1
1
1
1
1
1
2
64
4
1
64
256
256
1
64
1
1
1
64
256
256
4
4
1
1
1
256
256
64
4
4
4
4
4
1
1
1
256
256
64
4
4
4
4
1
256
256
32
1
256
256
32
1
256
256
32
1
1
256
32
1
256
32
4
1
256
1
32
1
1
1
32
1
1
32
4
1
32
1
1
32
32
1
1
32
1
32
1
1
4
1
1
1
1
1
1
2
32
4
1
32
1
1
1
32
1
1
1
32
1
1
4
1
256
256
32
1
1
1
32
1
256
256
32
4
1
32
256
256
32
32
1
1
32
1
32
256
256
4
1
1
1
1
1
1
2
32
4
1
32
256
256
1
32
1
1
1
32
256
256
1
32
256
256
1
32
256
256
1
32
256
256
4
1
256
256
32
1
1
256
256
1
256
256
4
1
32
256
256
1
1
256
256
1
32
256
256
1
32
256
256
4
1
32
256
256
1
32
256
256
1
32
256
256
4
1
256
256
32
1
1
256
256
1
256
256
1
256
256
1
256
256
4
1
256
256
1
1
256
256
1
1
256
256
32
1
256
256
1
1
256
256
32
1
1
1
32
1
256
256
32
1
1
1
32
1
256
256
32
4
1
32
256
256
64
32
1
1
64
1
64
256
256
4
1
1
1
1
1
1
2
64
4
1
64
256
256
1
64
1
1
1
64
256
256
4
4
1
1
1
256
256
64
4
4
4
4
4
1
1
1
256
256
64
4
4
4
4
1
256
256
32
1
256
256
32
1
256
256
32
4
1
32
256
256
32
32
1
1
32
1
32
256
256
4
1
1
1
1
1
1
2
32
4
1
32
256
256
1
32
1
1
1
32
256
256
1
32
256
256
1
32
256
256
64
32
2
2
64
1
64
128
128
4
1
1
1
1
1
1
2
64
4
1
64
128
128
1
64
1
1
1
64
128
128
1
64
128
128
4
1
128
128
64
1
1
128
128
1
128
128
4
1
64
128
128
1
1
128
128
1
64
128
128
1
64
128
128
4
1
64
128
128
1
64
128
128
1
64
128
128
4
1
128
128
64
1
1
128
128
1
128
128
1
128
128
1
128
128
4
1
128
128
1
1
128
128
1
1
128
128
64
1
128
128
1
1
128
128
64
1
1
1
64
1
128
128
64
1
1
1
64
1
128
128
64
4
1
64
128
128
128
64
1
1
128
1
128
128
128
4
1
1
1
1
1
1
2
128
4
1
128
128
128
1
128
1
1
128
1
3
3
4
2
1
1
1
1
3
128
1
3
3
5
1
128
128
128
128
1
1
3
3
128
1
128
128
128
4
1
1
1
1
1
1
2
128
4
1
128
128
128
1
128
1
1
1
128
128
128
4
4
1
1
1
128
128
128
4
4
4
4
4
1
1
1
128
128
128
4
4
4
4
1
128
128
64
1
128
128
64
1
128
128
64
1
1
128
64
1
128
64
4
1
128
1
64
1
1
1
64
1
1
64
4
1
64
1
1
64
64
1
1
64
1
64
1
1
4
1
1
1
1
1
1
2
64
4
1
64
1
1
1
64
1
1
1
64
1
1
4
1
128
128
64
1
1
1
64
1
128
128
64
4
1
64
128
128
64
64
1
1
64
1
64
128
128
4
1
1
1
1
1
1
2
64
4
1
64
128
128
1
64
1
1
1
64
128
128
1
64
128
128
1
64
128
128
1
64
128
128
4
1
128
128
64
1
1
128
128
1
128
128
4
1
64
128
128
1
1
128
128
1
64
128
128
1
64
128
128
4
1
64
128
128
1
64
128
128
1
64
128
128
4
1
128
128
64
1
1
128
128
1
128
128
1
128
128
1
128
128
4
1
128
128
1
1
128
128
1
1
128
128
64
1
128
128
1
1
128
128
64
1
1
1
64
1
128
128
64
1
1
1
64
1
128
128
64
4
1
64
128
128
128
64
1
1
128
1
128
128
128
4
1
1
1
1
1
1
2
128
4
1
128
128
128
1
128
1
1
1
128
128
128
4
4
1
1
1
128
128
128
4
4
4
4
4
1
1
1
128
128
128
4
4
4
4
1
128
128
64
1
128
128
64
1
128
128
64
4
1
64
128
128
64
64
1
1
64
1
64
128
128
4
1
1
1
1
1
1
2
64
4
1
64
128
128
1
64
1
1
1
64
128
128
1
64
128
128
1
64
128
128
128
64
2
2
128
1
128
64
64
4
1
1
1
1
1
1
2
128
4
1
128
64
64
1
128
1
1
1
128
64
64
1
128
64
64
4
1
64
64
128
1
1
64
64
1
64
64
4
1
128
64
64
1
1
64
64
1
128
64
64
1
128
64
64
4
1
128
64
64
1
128
64
64
1
128
64
64
4
1
64
64
128
1
1
64
64
1
64
64
1
64
64
1
64
64
4
1
64
64
1
1
64
64
1
1
64
64
128
1
64
64
1
1
64
64
128
1
1
1
128
1
64
64
128
1
1
1
128
1
64
64
128
4
1
128
64
64
256
128
1
1
256
1
256
64
64
4
1
1
1
1
1
1
2
256
4
1
256
64
64
1
256
1
1
256
1
3
3
4
2
1
1
1
1
3
256
1
3
3
5
1
256
64
64
256
1
1
3
3
256
1
256
64
64
4
1
1
1
1
1
1
2
256
4
1
256
64
64
1
256
1
1
1
256
64
64
4
4
1
1
1
64
64
256
4
4
4
4
4
1
1
1
64
64
256
4
4
4
4
1
64
64
128
1
64
64
128
1
64
64
128
1
1
64
128
1
64
128
4
1
64
1
128
1
1
1
128
1
1
128
4
1
128
1
1
128
128
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
128
1
1
4
1
64
64
128
1
1
1
128
1
64
64
128
4
1
128
64
64
128
128
1
1
128
1
128
64
64
4
1
1
1
1
1
1
2
128
4
1
128
64
64
1
128
1
1
1
128
64
64
1
128
64
64
1
128
64
64
1
128
64
64
4
1
64
64
128
1
1
64
64
1
64
64
4
1
128
64
64
1
1
64
64
1
128
64
64
1
128
64
64
4
1
128
64
64
1
128
64
64
1
128
64
64
4
1
64
64
128
1
1
64
64
1
64
64
1
64
64
1
64
64
4
1
64
64
1
1
64
64
1
1
64
64
128
1
64
64
1
1
64
64
128
1
1
1
128
1
64
64
128
1
1
1
128
1
64
64
128
4
1
128
64
64
256
128
1
1
256
1
256
64
64
4
1
1
1
1
1
1
2
256
4
1
256
64
64
1
256
1
1
1
256
64
64
4
4
1
1
1
64
64
256
4
4
4
4
4
1
1
1
64
64
256
4
4
4
4
1
64
64
128
1
64
64
128
1
64
64
128
4
1
128
64
64
128
128
1
1
128
1
128
64
64
4
1
1
1
1
1
1
2
128
4
1
128
64
64
1
128
1
1
1
128
64
64
1
128
64
64
1
128
64
64
256
128
2
2
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
512
256
2
2
512
1
512
16
16
4
1
1
1
1
1
1
2
512
4
1
512
16
16
1
512
1
1
1
512
16
16
1
512
16
16
4
1
16
16
512
1
1
16
16
1
16
16
4
1
512
16
16
1
1
16
16
1
512
16
16
1
512
16
16
4
1
512
16
16
1
512
16
16
1
512
16
16
4
1
16
16
512
1
1
16
16
1
16
16
1
16
16
1
16
16
4
1
16
16
1
1
16
16
1
1
16
16
512
1
16
16
1
1
16
16
512
1
1
1
512
1
16
16
512
1
1
1
512
1
16
16
512
4
1
512
16
16
1024
512
1
1
1024
1
1024
16
16
4
1
1
1
1
1
1
2
1024
4
1
1024
16
16
1
1024
1
1
1024
1
3
3
4
2
1
1
1
1
3
1024
1
3
3
5
1
1024
16
16
1024
1
1
3
3
1024
1
1024
16
16
4
1
1
1
1
1
1
2
1024
4
1
1024
16
16
1
1024
1
1
1
1024
16
16
4
4
1
1
1
16
16
1024
4
4
4
4
4
1
1
1
16
16
1024
4
4
4
4
1
16
16
512
1
16
16
512
1
16
16
512
1
1
16
512
1
16
512
4
1
16
1
512
1
1
1
512
1
1
512
4
1
512
1
1
512
512
1
1
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
4
1
16
16
512
1
1
1
512
1
16
16
512
4
1
512
16
16
512
512
1
1
512
1
512
16
16
4
1
1
1
1
1
1
2
512
4
1
512
16
16
1
512
1
1
1
512
16
16
1
512
16
16
1
512
16
16
1
512
16
16
4
1
16
16
512
1
1
16
16
1
16
16
4
1
512
16
16
1
1
16
16
1
512
16
16
1
512
16
16
4
1
512
16
16
1
512
16
16
1
512
16
16
4
1
16
16
512
1
1
16
16
1
16
16
1
16
16
1
16
16
4
1
16
16
1
1
16
16
1
1
16
16
512
1
16
16
1
1
16
16
512
1
1
1
512
1
16
16
512
1
1
1
512
1
16
16
512
4
1
512
16
16
1024
512
1
1
1024
1
1024
16
16
4
1
1
1
1
1
1
2
1024
4
1
1024
16
16
1
1024
1
1
1
1024
16
16
4
4
1
1
1
16
16
1024
4
4
4
4
4
1
1
1
16
16
1024
4
4
4
4
1
16
16
512
1
16
16
512
1
16
16
512
4
1
512
16
16
512
512
1
1
512
1
512
16
16
4
1
1
1
1
1
1
2
512
4
1
512
16
16
1
512
1
1
1
512
16
16
1
512
16
16
1
512
16
16
1024
512
1
1
1024
1
1024
16
16
4
1
1
1
1
1
1
2
1024
4
1
1024
16
16
1
1024
1
1
1
1024
16
16
4
1
1024
32
32
4
1
32
32
1024
1
32
32
1
1
32
32
1024
4
4
1
34
34
1024
4
1
1024
34
34
256
1024
2
2
256
1
256
33
33
4
1
1
1
1
1
1
2
256
4
1
256
33
33
1
256
1
1
1
256
33
33
4
4
1
1
1
33
33
256
4
4
4
4
4
1
1
1
32
33
256
4
4
4
4
1
32
32
256
4
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
512
1
3
3
4
2
1
1
1
1
3
512
1
3
3
5
1
512
32
32
512
1
1
3
3
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
1
1
32
256
1
32
256
4
1
32
1
256
1
1
1
256
1
1
256
4
1
256
1
1
256
256
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
256
1
1
4
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
4
1
256
32
32
1
1
32
32
1
256
32
32
1
256
32
32
4
1
256
32
32
1
256
32
32
1
256
32
32
4
1
32
32
256
1
1
32
32
1
32
32
1
32
32
1
32
32
4
1
32
32
1
1
32
32
1
1
32
32
256
1
32
32
1
1
32
32
256
1
1
1
256
1
32
32
256
1
1
1
256
1
32
32
256
4
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
4
1
1
1
32
32
512
4
4
4
4
4
1
1
1
32
32
512
4
4
4
4
1
32
32
256
1
32
32
256
1
32
32
256
4
1
256
32
32
256
256
1
1
256
1
256
32
32
4
1
1
1
1
1
1
2
256
4
1
256
32
32
1
256
1
1
1
256
32
32
1
256
32
32
1
256
32
32
512
256
1
1
512
1
512
32
32
4
1
1
1
1
1
1
2
512
4
1
512
32
32
1
512
1
1
1
512
32
32
4
1
512
64
64
4
1
64
64
512
1
64
64
1
1
64
64
512
4
4
1
66
66
512
4
1
512
66
66
128
512
2
2
128
1
128
65
65
4
1
1
1
1
1
1
2
128
4
1
128
65
65
1
128
1
1
1
128
65
65
4
4
1
1
1
65
65
128
4
4
4
4
4
1
1
1
64
65
128
4
4
4
4
1
64
64
128
4
1
128
64
64
1
128
64
64
1
128
64
64
1
128
64
64
4
1
64
64
128
1
1
64
64
1
64
64
4
1
128
64
64
1
1
64
64
1
128
64
64
1
128
64
64
4
1
128
64
64
1
128
64
64
1
128
64
64
4
1
64
64
128
1
1
64
64
1
64
64
1
64
64
1
64
64
4
1
64
64
1
1
64
64
1
1
64
64
128
1
64
64
1
1
64
64
128
1
1
1
128
1
64
64
128
1
1
1
128
1
64
64
128
4
1
128
64
64
256
128
1
1
256
1
256
64
64
4
1
1
1
1
1
1
2
256
4
1
256
64
64
1
256
1
1
256
1
3
3
4
2
1
1
1
1
3
256
1
3
3
5
1
256
64
64
256
1
1
3
3
256
1
256
64
64
4
1
1
1
1
1
1
2
256
4
1
256
64
64
1
256
1
1
1
256
64
64
4
4
1
1
1
64
64
256
4
4
4
4
4
1
1
1
64
64
256
4
4
4
4
1
64
64
128
1
64
64
128
1
64
64
128
1
1
64
128
1
64
128
4
1
64
1
128
1
1
1
128
1
1
128
4
1
128
1
1
128
128
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
128
1
1
4
1
64
64
128
1
1
1
128
1
64
64
128
4
1
128
64
64
128
128
1
1
128
1
128
64
64
4
1
1
1
1
1
1
2
128
4
1
128
64
64
1
128
1
1
1
128
64
64
1
128
64
64
1
128
64
64
1
128
64
64
4
1
64
64
128
1
1
64
64
1
64
64
4
1
128
64
64
1
1
64
64
1
128
64
64
1
128
64
64
4
1
128
64
64
1
128
64
64
1
128
64
64
4
1
64
64
128
1
1
64
64
1
64
64
1
64
64
1
64
64
4
1
64
64
1
1
64
64
1
1
64
64
128
1
64
64
1
1
64
64
128
1
1
1
128
1
64
64
128
1
1
1
128
1
64
64
128
4
1
128
64
64
256
128
1
1
256
1
256
64
64
4
1
1
1
1
1
1
2
256
4
1
256
64
64
1
256
1
1
1
256
64
64
4
4
1
1
1
64
64
256
4
4
4
4
4
1
1
1
64
64
256
4
4
4
4
1
64
64
128
1
64
64
128
1
64
64
128
4
1
128
64
64
128
128
1
1
128
1
128
64
64
4
1
1
1
1
1
1
2
128
4
1
128
64
64
1
128
1
1
1
128
64
64
1
128
64
64
1
128
64
64
256
128
1
1
256
1
256
64
64
4
1
1
1
1
1
1
2
256
4
1
256
64
64
1
256
1
1
1
256
64
64
4
1
256
128
128
4
1
128
128
256
1
128
128
1
1
128
128
256
4
4
1
130
130
256
4
1
256
130
130
64
256
2
2
64
1
64
129
129
4
1
1
1
1
1
1
2
64
4
1
64
129
129
1
64
1
1
1
64
129
129
4
4
1
1
1
129
129
64
4
4
4
4
4
1
1
1
128
129
64
4
4
4
4
1
128
128
64
4
1
64
128
128
1
64
128
128
1
64
128
128
1
64
128
128
4
1
128
128
64
1
1
128
128
1
128
128
4
1
64
128
128
1
1
128
128
1
64
128
128
1
64
128
128
4
1
64
128
128
1
64
128
128
1
64
128
128
4
1
128
128
64
1
1
128
128
1
128
128
1
128
128
1
128
128
4
1
128
128
1
1
128
128
1
1
128
128
64
1
128
128
1
1
128
128
64
1
1
1
64
1
128
128
64
1
1
1
64
1
128
128
64
4
1
64
128
128
128
64
1
1
128
1
128
128
128
4
1
1
1
1
1
1
2
128
4
1
128
128
128
1
128
1
1
128
1
3
3
4
2
1
1
1
1
3
128
1
3
3
5
1
128
128
128
128
1
1
3
3
128
1
128
128
128
4
1
1
1
1
1
1
2
128
4
1
128
128
128
1
128
1
1
1
128
128
128
4
4
1
1
1
128
128
128
4
4
4
4
4
1
1
1
128
128
128
4
4
4
4
1
128
128
64
1
128
128
64
1
128
128
64
1
1
128
64
1
128
64
4
1
128
1
64
1
1
1
64
1
1
64
4
1
64
1
1
64
64
1
1
64
1
64
1
1
4
1
1
1
1
1
1
2
64
4
1
64
1
1
1
64
1
1
1
64
1
1
4
1
128
128
64
1
1
1
64
1
128
128
64
4
1
64
128
128
64
64
1
1
64
1
64
128
128
4
1
1
1
1
1
1
2
64
4
1
64
128
128
1
64
1
1
1
64
128
128
1
64
128
128
1
64
128
128
1
64
128
128
4
1
128
128
64
1
1
128
128
1
128
128
4
1
64
128
128
1
1
128
128
1
64
128
128
1
64
128
128
4
1
64
128
128
1
64
128
128
1
64
128
128
4
1
128
128
64
1
1
128
128
1
128
128
1
128
128
1
128
128
4
1
128
128
1
1
128
128
1
1
128
128
64
1
128
128
1
1
128
128
64
1
1
1
64
1
128
128
64
1
1
1
64
1
128
128
64
4
1
64
128
128
128
64
1
1
128
1
128
128
128
4
1
1
1
1
1
1
2
128
4
1
128
128
128
1
128
1
1
1
128
128
128
4
4
1
1
1
128
128
128
4
4
4
4
4
1
1
1
128
128
128
4
4
4
4
1
128
128
64
1
128
128
64
1
128
128
64
4
1
64
128
128
64
64
1
1
64
1
64
128
128
4
1
1
1
1
1
1
2
64
4
1
64
128
128
1
64
1
1
1
64
128
128
1
64
128
128
1
64
128
128
128
64
1
1
128
1
128
128
128
4
1
1
1
1
1
1
2
128
4
1
128
128
128
1
128
1
1
1
128
128
128
4
1
128
256
256
4
1
256
256
128
1
256
256
1
1
256
256
128
4
4
1
258
258
128
4
1
128
258
258
32
128
2
2
32
1
32
257
257
4
1
1
1
1
1
1
2
32
4
1
32
257
257
1
32
1
1
1
32
257
257
4
4
1
1
1
257
257
32
4
4
4
4
4
1
1
1
256
257
32
4
4
4
4
1
256
256
32
4
1
32
256
256
1
32
256
256
1
32
256
256
1
32
256
256
4
1
256
256
32
1
1
256
256
1
256
256
4
1
32
256
256
1
1
256
256
1
32
256
256
1
32
256
256
4
1
32
256
256
1
32
256
256
1
32
256
256
4
1
256
256
32
1
1
256
256
1
256
256
1
256
256
1
256
256
4
1
256
256
1
1
256
256
1
1
256
256
32
1
256
256
1
1
256
256
32
1
1
1
32
1
256
256
32
1
1
1
32
1
256
256
32
4
1
32
256
256
64
32
1
1
64
1
64
256
256
4
1
1
1
1
1
1
2
64
4
1
64
256
256
1
64
1
1
64
1
3
3
4
2
1
1
1
1
3
64
1
3
3
5
1
64
256
256
64
1
1
3
3
64
1
64
256
256
4
1
1
1
1
1
1
2
64
4
1
64
256
256
1
64
1
1
1
64
256
256
4
4
1
1
1
256
256
64
4
4
4
4
4
1
1
1
256
256
64
4
4
4
4
1
256
256
32
1
256
256
32
1
256
256
32
1
1
256
32
1
256
32
4
1
256
1
32
1
1
1
32
1
1
32
4
1
32
1
1
32
32
1
1
32
1
32
1
1
4
1
1
1
1
1
1
2
32
4
1
32
1
1
1
32
1
1
1
32
1
1
4
1
256
256
32
1
1
1
32
1
256
256
32
4
1
32
256
256
32
32
1
1
32
1
32
256
256
4
1
1
1
1
1
1
2
32
4
1
32
256
256
1
32
1
1
1
32
256
256
1
32
256
256
1
32
256
256
1
32
256
256
4
1
256
256
32
1
1
256
256
1
256
256
4
1
32
256
256
1
1
256
256
1
32
256
256
1
32
256
256
4
1
32
256
256
1
32
256
256
1
32
256
256
4
1
256
256
32
1
1
256
256
1
256
256
1
256
256
1
256
256
4
1
256
256
1
1
256
256
1
1
256
256
32
1
256
256
1
1
256
256
32
1
1
1
32
1
256
256
32
1
1
1
32
1
256
256
32
4
1
32
256
256
64
32
1
1
64
1
64
256
256
4
1
1
1
1
1
1
2
64
4
1
64
256
256
1
64
1
1
1
64
256
256
4
4
1
1
1
256
256
64
4
4
4
4
4
1
1
1
256
256
64
4
4
4
4
1
256
256
32
1
256
256
32
1
256
256
32
4
1
32
256
256
32
32
1
1
32
1
32
256
256
4
1
1
1
1
1
1
2
32
4
1
32
256
256
1
32
1
1
1
32
256
256
1
32
256
256
1
32
256
256
3
32
3
3
3
1
3
256
256
4
1
1
1
1
1
1
2
3
4
1
3
256
256
1
3
1
1
1
3
256
256
1
3
256
256
1
3
256
256