petite-difference-challenge.../dev-0/expected.tsv
Karol Kaczmarek ddce23e0d4 Init
2020-06-13 20:19:17 +02:00

137315 lines
268 KiB
Plaintext

1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
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
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
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
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
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
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
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
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
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
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
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
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
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
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
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
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
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
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
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
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
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
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
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
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
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
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
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
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
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
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
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
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
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
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
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
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
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
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
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
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
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
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
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
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
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
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
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
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
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
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
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
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
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
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
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
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
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
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
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
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
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
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
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
1
0
0
0
1
0
0
0
0
1
0
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
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
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
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
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
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
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
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
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
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
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
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
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
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
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
1
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
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
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
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
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
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
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
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
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
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
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
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
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
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
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
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
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
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
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
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
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
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
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
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
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
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
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
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
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
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
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
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
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
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
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
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
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
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
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
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
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
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
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
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
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
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
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
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
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
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
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
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
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
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
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
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
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
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
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
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
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
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
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
0
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
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
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
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
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
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
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
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
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
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
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
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
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
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
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
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
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
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
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
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
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
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
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
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
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
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
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
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
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
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
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
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
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
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
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
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
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
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
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
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
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
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
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
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
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
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
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
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
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
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
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
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
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
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
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
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
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
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
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
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
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
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
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
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
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
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
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
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
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
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
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
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
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
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
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
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
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
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
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
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
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
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
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
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
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
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
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
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
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
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
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
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
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
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
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
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
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
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
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
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
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
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
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
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
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
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
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
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
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
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
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
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
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
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
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
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
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
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
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
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
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
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
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
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
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
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
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
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
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
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
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
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
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
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
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
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
0
0
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
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
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
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
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
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
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
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
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
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
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
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
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
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
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
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0