paranormal-or-skeptic3/train/expected.tsv
2020-03-30 18:28:23 +02:00

566 KiB

1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
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
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
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
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
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
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
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
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
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
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
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
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
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
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
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
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
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
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
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
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
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
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
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
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
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
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
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
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
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
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
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
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
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
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
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
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
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
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
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
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
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
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
0
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
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
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
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
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
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
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
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
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
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
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
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
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
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
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
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
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
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
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
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
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
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
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
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
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
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
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
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
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
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
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
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
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
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
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
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
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
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
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
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
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
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
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
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
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
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
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
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
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
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
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
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
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
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
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
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
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
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
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
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
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
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
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
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
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
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
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
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
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
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
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
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
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
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
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
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
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
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
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
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
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
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
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
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
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
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
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
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
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
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
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
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
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
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
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
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
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
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
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
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
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
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
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
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
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
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
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
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
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
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
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
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
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
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
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
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
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
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
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
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
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
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
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
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
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
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
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
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
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
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
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
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
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
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
1
0
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
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
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
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
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
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
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
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
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
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
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
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
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
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
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
0
0
0
1
1
0
0
0
1
0
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
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
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
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
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
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
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
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
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
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
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
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
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
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
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
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
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
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
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
1
1
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
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
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
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
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
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
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
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
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
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
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
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
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
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
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
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
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
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
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
0
0
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
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
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
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
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
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
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
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
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
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
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
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
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
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
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
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
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
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
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
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
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
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
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
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
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
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
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
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
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
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
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
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
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
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
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
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
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
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
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
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
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
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
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
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
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
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
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
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
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
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
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
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
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
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
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
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
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
1
1
0
1
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
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
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
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
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
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
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
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
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
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
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
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
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
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
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
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
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
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
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
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
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
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
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
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
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
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
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
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
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
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
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
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
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
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
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
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
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
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
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
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
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
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
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
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
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
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
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
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
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
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
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
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
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
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
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
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
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
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
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
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
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
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
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
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
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
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
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
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
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
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
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
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
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
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
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
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
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
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
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
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
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
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
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
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
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
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
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
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
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
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
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
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
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
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
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
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
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
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
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
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
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
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
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
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
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
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
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
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
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
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
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
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
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
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
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
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
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
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
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
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
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
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
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
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
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
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
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
1
0
0
0
0
0
0
0
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
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
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
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
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
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
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
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
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
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
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
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
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
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
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
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
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
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
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
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
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
1
1
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
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
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
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
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
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
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
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
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
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
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
0
0
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
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
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
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
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
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
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
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
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
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
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
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
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
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
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
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
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
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
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
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
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
0
1
0
0
1
1
1
1
0
0
0
1
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
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
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
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
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
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
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
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
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
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
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
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
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
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
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
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
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
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
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
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
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
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
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
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
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
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
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
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
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
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
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
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
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
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
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
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
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
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
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
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
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
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
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
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
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
0
0
0
0
0
0
0
0
0
0
0
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
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
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
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
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
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
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
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
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
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
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
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
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
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
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
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
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
1
0
0
0
1
1
0
0
1
0
1
1
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
1
0
0
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
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
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
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
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
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
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
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
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
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
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
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
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
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
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
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
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
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
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
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
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
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
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
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
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
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
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
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
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
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
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
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
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
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
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
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
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
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
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
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
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
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
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
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
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
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
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
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
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
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
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
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
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
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
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
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
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
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
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
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
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
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
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
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
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
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
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
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
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
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
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
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
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
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
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
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
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
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
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
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
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
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
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
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
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
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
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
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
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
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
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
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
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
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
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
1
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
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
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
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
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
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
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
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
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
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
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
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
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
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
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
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
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
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
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
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
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
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
0
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
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
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
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
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
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
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
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
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
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
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
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
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
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
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
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
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
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
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
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
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
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
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
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
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
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
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
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
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
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
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
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
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
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
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
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
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
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
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
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
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
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
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
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
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
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
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
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
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
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
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
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
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
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
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
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
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
0
1
0
1
0
0
1
0
1
1
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
0
1
1
0
1
0
0
1
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
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
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
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
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
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
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
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
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
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
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
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
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
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
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
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
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
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
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
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
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
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
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
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
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
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
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
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
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
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
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
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
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
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
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
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
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
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
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
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
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
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
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
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
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
0
1
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
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
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
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
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
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
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
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
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
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
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
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
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
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
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
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
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
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
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
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
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
1
0
1
0
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
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
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
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
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
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
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
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
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
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
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
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
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
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
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
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
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
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
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
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
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
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
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
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
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
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
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
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
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
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
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
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
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
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
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
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
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
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
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
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
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
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
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
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
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
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
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
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
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
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
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
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
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
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
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
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
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
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
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
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
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
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
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
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
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
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
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
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
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
0
0
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
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
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
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
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
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
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
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
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
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
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
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
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
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
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
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
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
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
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
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
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
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
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
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
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
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
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
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
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
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
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
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
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
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
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
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
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
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
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
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
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
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
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
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
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
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
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
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
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
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
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
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
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
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
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
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
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
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
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
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
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
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
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
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
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
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
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
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
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
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
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
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
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
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
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
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
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
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
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
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
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
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
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
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
1
0
0
0
1
1
1
1
1
0
0
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
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
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
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
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
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
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
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
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
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
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
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
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
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
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
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
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
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
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
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
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
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
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
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
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
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
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
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
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
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
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
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
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
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
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
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
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
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
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
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
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
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
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
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
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
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
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
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
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
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
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
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
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
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
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
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
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
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
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
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
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
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
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
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
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
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
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
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
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
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
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
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
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
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
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
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
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
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
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
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
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
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
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
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
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
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
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
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
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
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
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
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
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
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
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
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
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
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
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
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
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
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
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
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
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
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
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
0
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
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
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
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
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
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
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
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
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
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
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
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
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
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
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
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
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
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
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
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
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
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
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
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
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
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
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
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
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
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
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
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
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
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
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
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
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
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
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
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
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
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
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
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
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
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
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
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
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
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
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
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
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
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
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
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
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
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
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
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
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
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
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
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
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
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
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
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
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
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
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
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
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
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
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
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
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
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
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
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
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
1
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
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
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
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
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
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
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
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
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
0
1
0
0
0
1
1
1
0
0
0
0
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
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
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
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
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
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
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
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
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
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
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
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
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
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
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
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
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
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
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
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
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
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
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
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
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
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
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
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
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
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
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
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
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
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
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
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
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
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
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
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
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
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
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
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
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
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
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
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
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
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
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
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
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
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
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
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
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
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
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
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
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
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
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
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
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
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
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
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
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
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
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
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
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
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
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
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
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
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
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
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
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
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
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
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
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
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
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
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
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
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
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
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
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
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
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
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
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
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
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
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
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
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
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
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
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
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
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
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
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
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
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
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
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
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
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
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
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
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
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
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
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
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
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
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
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
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
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
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
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
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
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
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
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
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
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
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
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
0
0
0
0
1
1
0
1
0
1
1
0
1
1
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
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
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
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
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
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
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
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
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
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
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
1
0
0
0
0
1
0
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
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
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
0
0
0
1
0
0
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
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
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
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
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
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
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
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
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
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
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
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
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
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
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
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
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
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
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
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
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
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
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
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
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
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
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
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
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
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
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
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
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
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
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
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
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
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
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
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
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
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
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
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
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
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
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
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
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
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
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
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
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
1
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
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
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
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
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
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
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
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
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
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
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
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
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
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
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
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
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
1
0
1
0
1
0
0
0
1
0
0
0
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
0
0
1
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
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
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
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
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
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
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
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
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
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
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
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
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
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
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
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
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
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
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
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
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
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
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
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
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
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
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
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
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
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
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
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
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
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
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
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
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
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
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
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
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
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
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
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
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
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
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
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
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
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
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
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
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
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
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
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
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
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
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
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
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
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
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
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
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
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
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
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
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
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
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
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
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
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
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
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
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
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
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
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
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
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
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
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
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
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
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
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
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
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
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
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
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
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
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
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
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
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
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
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
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
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
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
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
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
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
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
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
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
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
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
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
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
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
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
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
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
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
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
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
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
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
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
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
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
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
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
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
1
1
0
0
1
0
0
0
0
0
0
0
0
0
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
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
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
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
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
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
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
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
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
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
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
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
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
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
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
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
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
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
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
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
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
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
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
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
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
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
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
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
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
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
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
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
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
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
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
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
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
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
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
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
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
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
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
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
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
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
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
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
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
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
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
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
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
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
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
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
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
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
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
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
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
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
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
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
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
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
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
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
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
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
0
0
0
0
1
1
0
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
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
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
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
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
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
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
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
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
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
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
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
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
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
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
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1