0
1
mirror of https://git.sb/baoshuo/OI-codes.git synced 2024-11-08 20:58:49 +00:00
OI-codes/Luogu/P4269/data/P4269_10.out

98005 lines
191 KiB (Stored with Git LFS)
Plaintext

1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
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
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
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
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
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
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
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
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
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
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
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
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
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
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
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
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
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
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
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
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
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
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
1
0
1
0
0
0
0
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
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
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
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
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
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
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
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
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
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
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
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
0
1
1
1
0
1
1
0
1
1
0
0
1
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
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
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
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
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
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
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
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
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
1
1
1
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
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
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
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
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
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
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
1
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
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
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
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
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
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
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
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
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
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
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
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
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
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
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
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
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
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
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
1
1
0
0
0
1
0
0
1
0
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
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
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
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
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
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
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
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
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
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
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
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
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
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
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
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
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
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
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
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
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
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
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
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
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
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
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
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
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
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
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
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
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
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
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
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
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
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
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
1
1
1
0
1
0
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
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
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
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
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
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
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
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
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
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
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
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
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
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
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
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
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
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
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
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
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
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
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
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
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
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
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
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
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
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
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
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
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
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
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
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
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
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
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
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
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
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
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
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
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
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
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
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
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
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
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
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
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
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
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
1
0
0
0
1
1
1
1
0
1
1
1
1
1
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
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
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
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
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
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
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
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
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
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
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
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
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
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
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
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
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
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
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
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
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
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
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
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
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
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
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
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
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
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
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
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
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
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
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
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
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
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
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
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
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
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
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
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
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
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
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
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
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
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
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
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
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
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
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
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
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
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
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
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
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
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
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
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
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
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
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
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
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
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
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
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
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
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
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
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
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
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
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
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
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
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
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
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
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
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
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
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
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
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
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
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
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
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
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
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
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
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
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
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
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
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
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
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
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
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
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
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
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
1
1
1
1
1
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
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
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
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
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
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
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
0
0
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
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
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
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
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
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
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
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
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
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
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
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
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
1
1
0
0
1
1
0
1
1
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
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
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
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
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
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
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
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
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
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
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
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
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
1
1
1
1
0
1
1
1
0
0
1
1
1
0
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
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
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
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
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
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
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
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
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
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
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
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
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
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
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
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
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
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
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
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
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
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
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
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
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
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
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
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
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
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
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
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
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
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
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
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
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
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
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
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
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
1
1
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
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
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
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
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
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
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
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
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
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
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
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
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
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
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
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
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
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
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
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
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
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
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
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
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
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
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
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
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
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
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
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
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
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
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
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
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
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
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
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
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
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
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
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
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
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
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
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
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
1
1
0
0
0
0
0
0
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
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
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
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
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
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
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
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
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
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
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
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
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
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
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
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
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
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
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
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
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
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
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
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
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
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
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
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
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
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
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
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
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
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
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
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
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
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
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
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
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
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
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
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
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
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
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
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
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
1
1
1
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
1
0
1
1
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
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
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
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
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
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
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
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
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
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
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
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
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
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
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
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
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
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
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
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
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
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
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
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
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
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
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
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
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
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
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
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
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
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
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
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
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
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
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
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
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
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
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
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
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
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
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
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
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
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
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
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
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
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
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
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
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
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
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
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
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
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
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
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
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
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
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
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
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
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
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
1
1
1
1
1
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
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
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
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
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
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
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
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
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
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
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
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
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
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
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
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
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
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
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
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
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
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
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
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
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
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
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
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
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
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
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
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
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
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
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
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
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
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
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
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
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
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
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
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
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
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
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
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
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
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
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
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
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
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
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
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
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
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
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
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
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
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
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
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
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
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
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
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
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
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
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
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
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
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
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
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
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
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
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
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
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
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
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
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
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
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
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
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
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
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
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
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
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
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
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
1
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
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
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
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
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
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
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
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
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
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
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
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
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
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
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
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
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
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
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
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
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
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
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
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
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
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
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
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
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
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
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
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
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
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
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
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
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
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
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
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
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
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
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
1
1
1
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
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
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
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
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
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
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
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
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
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
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
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
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
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
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
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
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
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
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
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
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
1
0
1
0
1
0
0
0
1
1
1
0
1
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
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
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
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
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
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
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
0
1
1
1
0
1
1
0
1
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
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
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
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
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
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
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
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
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
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
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
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
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
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
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
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
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
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
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
1
1
1
1
1
0
0
1
1
1
1
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
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
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
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
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
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
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
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
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
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
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
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
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
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
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
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
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
1
0
1
1
1
1
0
1
0
1
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
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
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
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
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
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
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
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
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
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
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
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
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
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
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
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
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
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
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
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
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
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
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
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
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
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
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
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1