petite-difference-challenge2/dev-1/out.tsv
2022-04-21 10:44:42 +02:00

156607 lines
459 KiB
Plaintext

0
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
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
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
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
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
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
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
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
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
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
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
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
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
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
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
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
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
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
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
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
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
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
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
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
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
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
0
1
0
1
1
1
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
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
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
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
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
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
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
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
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
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
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
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
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
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
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
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
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
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
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
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
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
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
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
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
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
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
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
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
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
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
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
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
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
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
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
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
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
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
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
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
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
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
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
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
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
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
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
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
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
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
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
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
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
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
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
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
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
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
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
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
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
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
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
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
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
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
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
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
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
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
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
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
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
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
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
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
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
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
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
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
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
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
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
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
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
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
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
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
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
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
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
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
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
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
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
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
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
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
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
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
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
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
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
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
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
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
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
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
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
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
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
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
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
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
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
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
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
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
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
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
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
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
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
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
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
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
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
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
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
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
1
0
0
0
1
1
0
0
1
1
1
1
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
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
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
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
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
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
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
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
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
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
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
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
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
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
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
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
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
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
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
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
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
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
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
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
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
1
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
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
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
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
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
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
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
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
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
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
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
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
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
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
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
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
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
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
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
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
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
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
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
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
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
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
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
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
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
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
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
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
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
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
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
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
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
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
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
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
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
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
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
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
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
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
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
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
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
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
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
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
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
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
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
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
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
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
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
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
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
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
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
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
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
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
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
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
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
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
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
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
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
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
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
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
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
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
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
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
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
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
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
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
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
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
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
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
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
0
1
0
1
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
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
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
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
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
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
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
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
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
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
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
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
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
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
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
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
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
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
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
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
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
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
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
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
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
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
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
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
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
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
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
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
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
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
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
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
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
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
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
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
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
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
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
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
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
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
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
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
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
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
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
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
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
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
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
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
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
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
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
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
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
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
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
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
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
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
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
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
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
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
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
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
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
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
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
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
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
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
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
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
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
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
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
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
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
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
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
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
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
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
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
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
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
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
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
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
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
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
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
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
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
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
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
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
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
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
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
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
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
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
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
1
1
0
1
0
1
1
1
1
0
0
0
0
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
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
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
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
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
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
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
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
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
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
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
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
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
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
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
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
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
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
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
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
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
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
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
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
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
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
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
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
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
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
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
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
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
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
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
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
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
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
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
1
0
0
1
0
1
1
1
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
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
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
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
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
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
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
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
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
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
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
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
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
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
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
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
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
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
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
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
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
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
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
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
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
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
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
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
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
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
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
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
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
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
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
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
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
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
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
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
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
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
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
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
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
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
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
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
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
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
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
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
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
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
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
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
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
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
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
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
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
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
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
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
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
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
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
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
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
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
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
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
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
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
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
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
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
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
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
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
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
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
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
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
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
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
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
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
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
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
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
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
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
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
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
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
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
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
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
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
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
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
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
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
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
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
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
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
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
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
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
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
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
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
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
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
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
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
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
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
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
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
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
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
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
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
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
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
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
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
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
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
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
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
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
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
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
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
1
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
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
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
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
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
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
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
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
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
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
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
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
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
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
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
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
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
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
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
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
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
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
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
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
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
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
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
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
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
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
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
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
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
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
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
0
1
1
0
0
0
0
0
0
1
1
0
0
0
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
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
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
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
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
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
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
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
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
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
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
1
0
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
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
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
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
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
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
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
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
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
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
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
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
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
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
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
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
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
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
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
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
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
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
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
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
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
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
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
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
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
1
0
1
0
0
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
1
1
1
0
1
0
1
0
1
1
0
0
0
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
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
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
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
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
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
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
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
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
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
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
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
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
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
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
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
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
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
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
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
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
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
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
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
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
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
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
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
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
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
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
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
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
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
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
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
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
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
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
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
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
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
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
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
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
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
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
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
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
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
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
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
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
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
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
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
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
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
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
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
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
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
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
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
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
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
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
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
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
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
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
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
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
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
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
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
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
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
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
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
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
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
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
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
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
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
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
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
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
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
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
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
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
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
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
0
0
0
1
0
0
1
0
0
1
1
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
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
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
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
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
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
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
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
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
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
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
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
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
0
1
1
1
1
1
1
0
0
1
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
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
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
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
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
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
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
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
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
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
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
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
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
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
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
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
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
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
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
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
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
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
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
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
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
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
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
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
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
0
0
1
0
0
0
1
1
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
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
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
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
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
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
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
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
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
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
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
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
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
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
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
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
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
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
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
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
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
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
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
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
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
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
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
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
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
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
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
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
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
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
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
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
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
1
1
0
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
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
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
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
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
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
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
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
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
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
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
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
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
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
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
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
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
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
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
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
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
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
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
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
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
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
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
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
1
0
1
1
0
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
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
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
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
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
1
1
0
0
1
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
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
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
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
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
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
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
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
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
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
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
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
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
0
0
0
0
0
0
1
0
0
1
0
1
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
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
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
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
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
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
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
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
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
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
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
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
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
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
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
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
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
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
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
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
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
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
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
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
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
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
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
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
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
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
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
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
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
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
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
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
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
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
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
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
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
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0