petite-difference-challenge2/dev-0/expected.tsv
2020-12-14 22:53:02 +01:00

137315 lines
268 KiB
Plaintext

1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
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
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
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
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
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
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
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
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
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
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
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
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
0
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
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
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
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
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
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
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
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
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
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
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
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
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
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
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
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
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
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
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
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
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
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
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
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
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
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
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
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
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
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
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
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
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
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
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
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
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
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
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
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
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
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
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
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
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
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
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
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0