petite-difference-challenge2/test-A/out.tsv
Mikołaj Pokrywka abbad42ecd 444463
2022-04-23 20:16:10 +02:00

134619 lines
263 KiB
Plaintext

1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
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
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
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
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
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
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
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
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
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
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
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
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
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
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
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
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
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
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
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
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
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
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
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
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
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
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
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
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
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
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
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
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
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
1
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
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
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
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
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
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
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
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
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
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
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
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
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
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
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
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
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
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
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
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
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
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
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
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
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
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
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
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
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
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
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
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
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
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
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
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
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
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
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
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
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
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
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
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
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
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
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
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
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
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
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
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
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
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
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
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
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
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
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
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
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
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
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
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
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
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
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
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
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
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
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
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
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
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
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
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
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
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
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
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
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
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
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
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
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
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
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
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
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
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
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
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
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
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
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
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
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
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
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
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
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
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
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
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
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
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
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
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
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
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
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
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
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
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
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
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
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
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
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
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
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
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
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
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
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
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
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
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
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
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
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
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
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
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
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
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
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
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
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
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
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
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
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
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
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
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
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
1
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
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
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
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
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
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
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
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
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
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
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
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
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
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
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
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
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
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
1
0
0
0
0
0
1
0
1
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
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
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
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
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
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
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
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
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
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
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
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
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
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
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
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
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
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
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
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
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
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
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
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
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
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
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
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
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
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
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
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
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
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
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
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
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
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
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
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
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
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
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
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
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
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
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
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
0
0
0
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
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
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
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
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
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
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
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
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
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
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
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
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
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
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
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
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
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
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
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
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
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
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
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
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
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
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
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
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
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
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
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
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
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
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
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
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
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
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
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
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
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
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
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
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
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
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
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
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
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
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
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
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
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
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
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
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
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
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
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
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
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
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
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
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
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
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
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
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
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
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
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
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
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
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
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
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
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
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
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
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
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
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
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
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
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
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
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
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
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
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
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
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
0
1
1
1
0
1
0
0
0
1
0
1
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
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
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
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
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
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
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
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
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
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
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
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
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
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
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
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
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
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
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
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
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
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
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
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
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
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
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
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
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
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
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
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
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
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
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
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
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
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
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
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
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
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
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
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
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
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
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
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
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
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
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
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
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
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
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
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
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
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
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
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
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
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
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
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
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
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
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
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
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
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
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
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
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
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
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
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
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
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
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
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
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
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
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
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
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
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
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
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
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
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
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
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
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
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
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
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
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
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
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
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
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
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
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
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
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
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
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
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
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
1
1
0
0
0
1
0
1
0
0
1
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
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
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
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
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
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
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
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
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
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
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
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
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
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
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
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
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
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
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
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
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
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
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
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
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
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
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
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
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
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
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
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
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
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
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
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
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
1
1
0
1
0
1
0
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
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
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
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
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
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
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
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
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
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
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
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
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
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
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
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
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
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
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
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
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
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
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
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
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
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
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
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
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
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
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
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
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
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
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
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
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
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
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
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
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
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
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
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
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
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
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
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
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
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
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
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
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
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
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
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
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
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
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
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
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
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
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
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
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
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
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
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
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
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
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
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
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
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
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
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
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
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
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
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
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
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
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
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
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
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
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
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
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
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
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
1
0
0
1
1
0
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
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1