petite-difference-challenge2/dev-0/.ipynb_checkpoints/out-checkpoint.tsv
2022-04-22 16:59:51 +02:00

137315 lines
268 KiB
Plaintext

1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
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
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
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
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
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
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
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
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
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
1
1
0
0
0
1
0
1
1
1
0
1
1
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
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
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
0
0
1
1
1
1
0
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
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
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
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
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
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
0
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
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
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
1
0
0
1
1
1
0
1
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
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
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
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
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
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
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
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
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
1
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
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
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
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
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
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
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
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
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
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
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
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
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
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
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
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
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
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
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
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
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
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
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
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
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
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
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
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
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
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
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
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
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
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
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
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
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
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
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
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
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
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
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
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
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
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
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
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
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
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
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
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
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
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
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
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
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
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
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
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
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
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
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
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
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
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
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
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
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
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
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
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
0
1
0
0
0
1
0
0
0
0
0
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
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
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
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
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
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
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
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
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
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
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
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
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
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
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
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
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
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
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
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
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
1
1
1
0
0
0
0
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
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
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
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
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
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
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
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
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
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
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
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
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
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
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
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
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
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
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
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
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
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
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
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
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
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
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
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
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
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
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
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
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
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
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
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
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
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
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
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
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
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
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
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
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
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
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
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
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
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
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
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
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
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
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
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
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
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
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
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
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
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
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
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
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
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
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
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
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
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
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
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
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
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
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
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
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
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
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
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
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
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
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
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
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
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
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
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
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
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
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
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
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
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
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
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
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
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
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
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
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
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
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
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
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
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
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
1
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
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
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
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
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
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
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
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
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
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
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
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
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
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
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
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
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
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
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
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
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
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
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
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
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
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
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
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
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
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
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
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
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
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
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
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
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
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
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
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
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
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
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
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
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
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
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
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
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
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
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
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
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
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
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
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
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
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
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
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
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
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
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
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
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
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
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
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
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
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
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
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
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
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
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
0
0
0
0
1
1
1
0
1
1
1
0
1
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
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
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
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
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
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
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
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
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
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
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
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
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
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
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
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
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
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
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
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
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
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
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
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
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
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
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
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
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
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
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
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
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
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
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
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
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
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
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
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
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
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
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
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
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
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
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
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
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
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
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
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
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
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
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
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
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
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
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
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
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
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
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
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
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
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
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
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
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
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
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
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
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
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
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
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
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
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
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
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
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
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
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
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
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
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
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
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
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
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
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
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
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
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
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
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
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
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
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
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
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
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
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
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
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
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
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
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
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
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
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
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
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
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
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
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
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
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
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
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
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
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
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
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
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
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
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
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
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
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
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
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
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
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
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
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
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
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
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
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
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
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
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
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
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
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
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
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
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
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
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
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
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
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
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
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
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
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
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
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
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
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
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
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
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
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
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
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
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
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
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
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
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
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
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
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
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
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
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
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
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
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
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
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
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
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
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
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
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
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
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
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
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
0
0
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
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0