paranormal-or-skeptic-ISI-p.../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