0
1
mirror of https://git.sb/baoshuo/OI-codes.git synced 2024-12-27 10:51:59 +00:00
OI-codes/AtCoder/ABC231/C/data/case_05.out

200001 lines
391 KiB (Stored with Git LFS)
Plaintext

0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
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
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
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
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
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
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
1
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
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
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
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
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
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
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
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
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
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
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
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
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
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
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
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
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
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
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
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
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
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
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
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
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
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
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
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
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
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
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
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
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
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
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
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
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
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
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
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
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
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
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
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
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
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
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
1
1
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
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
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
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
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
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
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
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
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
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
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
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
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
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
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
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
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
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
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
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
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
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
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
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
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
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
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
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
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
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
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
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
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
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
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
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
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
1
1
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
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
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
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
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
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
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
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
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
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
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
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
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
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
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
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
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
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
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
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
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
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
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
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
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
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
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
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
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
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
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
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
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
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
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
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
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
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
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
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
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
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
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
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
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
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
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
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
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
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
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
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
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
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
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
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
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
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
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
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
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
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
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
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
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
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
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
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
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
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
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
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
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
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
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
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
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
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
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
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
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
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
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
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
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
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
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
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
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
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
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
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
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
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
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
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
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
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
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
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
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
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
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
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
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
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
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
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
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
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
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
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
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
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
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
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
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
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
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
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
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
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
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
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
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
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
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
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
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
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
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
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
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
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
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
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
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
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
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
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
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
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
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
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
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
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
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
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
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
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
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
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
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
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
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
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
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
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
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
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
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
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
1
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
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
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
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
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
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
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
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
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
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
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
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
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
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
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
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
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
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
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
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
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
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
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
1
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
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
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
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
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
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
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
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
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
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
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
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
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
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
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
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
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
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
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
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
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
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
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
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
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
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
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
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
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
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
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
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
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
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
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
0
0
1
0
1
1
1
0
0
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
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
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
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
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
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
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
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
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
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
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
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
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
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
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
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
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
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
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
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
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
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
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
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
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
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
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
1
0
1
1
0
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
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
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
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
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
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
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
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
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
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
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
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
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
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
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
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
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
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
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
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
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
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
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
1
0
0
1
1
1
1
1
1
1
1
1
0
1
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
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
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
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
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
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
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
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
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
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
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
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
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
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
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
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
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
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
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
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
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
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
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
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
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
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
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
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
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
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
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
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
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
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
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
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
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
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
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
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
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
1
1
0
1
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
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
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
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
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
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
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
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
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
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
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
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
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
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
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
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
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
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
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
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
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
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
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
0
0
1
1
0
0
1
1
0
1
1
1
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
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
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
0
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
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
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
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
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
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
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
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
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
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
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
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
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
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
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
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
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
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
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
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
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
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
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
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
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
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
1
0
1
0
1
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
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
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
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
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
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
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
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
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
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
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
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
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
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
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
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
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
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
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
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
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
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
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
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
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
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
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
1
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
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
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
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
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
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
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
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
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
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
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
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
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
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
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
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
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
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
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
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
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
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
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
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
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
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
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
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
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
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
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
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
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
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
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
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
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
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
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
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
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
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
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
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
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
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
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
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
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
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
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
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
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
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
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
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
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
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
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
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
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
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
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
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
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
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
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
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
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
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
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
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
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
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
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
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
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
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
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
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
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
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
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
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
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
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
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
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
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
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
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
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
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
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
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
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
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
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
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
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
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
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
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
0
1
0
1
1
1
0
0
1
0
1
1
0
0
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
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
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
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
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
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
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
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
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
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
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
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
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
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
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
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
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
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
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
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
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
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
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
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
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
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
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
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
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
1
0
1
1
1
1
1
1
1
0
0
1
0
1
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
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
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
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
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
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
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
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
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
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
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
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
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
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
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
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
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
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
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
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
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
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
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
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
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
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
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
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
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
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
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
1
1
0
0
0
1
0
0
1
1
1
1
0
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
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
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
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
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
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
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
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
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
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
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
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
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
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
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
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
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
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
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
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
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
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
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
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
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
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
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
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
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
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
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
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
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
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
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
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
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
1
0
0
1
1
0
0
0
1
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
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
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
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
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
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
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
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
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
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
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
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
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
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
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
1
1
1
1
1
1
1
0
1
1
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
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
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
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
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
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
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
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
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
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
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
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
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
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
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
0
1
1
1
0
0
1
1
0
0
1
0
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
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
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
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
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
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
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
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
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
1
1
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
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
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
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
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
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
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
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
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
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
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
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
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
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
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
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
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
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
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
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
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
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
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
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
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
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
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
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
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
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
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
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
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
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
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
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
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
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
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
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
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
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
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
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
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
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
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
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
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
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
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
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
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
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
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
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
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
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
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
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
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
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
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
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
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
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
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
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
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
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1