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

156607 lines
306 KiB
Plaintext

0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
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
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
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
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
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
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
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
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
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
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
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
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
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
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
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
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
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
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
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
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
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
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
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
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
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
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
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
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
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
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
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
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
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
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
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
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
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
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
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
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
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
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
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
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
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
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
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
1
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
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
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
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
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
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
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
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
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
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
1
0
1
1
1
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
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
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
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
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
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
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
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
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
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
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
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
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
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
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
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
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
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
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
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
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
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
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
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
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
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
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
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
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
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
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
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
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
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
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
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
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
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
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
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
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
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
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
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
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
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
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
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
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
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
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
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
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
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
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
1
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
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
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
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
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
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
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
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
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
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
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
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
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
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
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
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
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
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
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
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
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
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
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
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
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
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
0
0
0
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
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
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
1
0
1
1
1
0
1
0
0
1
0
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
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
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
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
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
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
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
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
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
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
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
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
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
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
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
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
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
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
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
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
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
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
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
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
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
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
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
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
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
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
0
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
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
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
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
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
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
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
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
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
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
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
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
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
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
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
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
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
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
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
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
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
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
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
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
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
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
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
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
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
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
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
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
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
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
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
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
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
0
1
0
1
0
1
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
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
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
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
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
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
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
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
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
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
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
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
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
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
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
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
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
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
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
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
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
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
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
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
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
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
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
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
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
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
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
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
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
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
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
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
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
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
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
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
1
1
0
1
1
0
0
1
0
0
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
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
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
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
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
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
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
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
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
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
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
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
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
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
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
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
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
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
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
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
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
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
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
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
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
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
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
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
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
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
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
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
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
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
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
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
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
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
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
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
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
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
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
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
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
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
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
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
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
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
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
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
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
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
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
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
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
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
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
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
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
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
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
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
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
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
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
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
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
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
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
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
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
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
0
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
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
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
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
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
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
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
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
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
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
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
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
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
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
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
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
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
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
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
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
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
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
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
0
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
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
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
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
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
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
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
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
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
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
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
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
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
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
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
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
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
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
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
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
1
0
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
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
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
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
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
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
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
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
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
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
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
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
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
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
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
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
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
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
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
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
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
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
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
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
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
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
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
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
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
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
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
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
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
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
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
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
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
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
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
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
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
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
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
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
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
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
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
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
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
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
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
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
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
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
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
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
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
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
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
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
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
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
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
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
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
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
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
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
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
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
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
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
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
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
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
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
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
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
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
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
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
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
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
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
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
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
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
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
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
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
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
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
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
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
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
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
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
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0