petite-difference-challenge2/dev-1/expected.tsv
JulianZablonski 0ca6d99ecf zadanie5
2022-04-26 22:11:08 +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