paranormal-or-skeptic-ISI-p.../train/expected.tsv
2021-06-04 01:59:57 +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