astra / fullTest /test_label.txt
suryadev1's picture
added time analysis
2fbe901
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
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
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
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
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
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
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
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
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
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
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
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
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
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
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
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
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
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
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
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
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
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
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
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
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
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
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
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
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
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
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
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
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
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
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
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
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
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
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
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
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
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
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
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
1
1
0
0
1
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
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
0
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
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
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
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
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
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
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
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
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
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
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
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
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
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
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
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
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
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
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
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
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
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
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
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
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
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
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
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
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
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
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
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
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
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
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
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
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
0
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
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
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
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
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
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
1
0
1
0
1
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
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
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
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
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
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
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
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
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
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
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
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
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
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
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
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
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
0
0
0
0
0
0
1
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
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
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
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
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
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
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
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
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
1
0
0
1
0
1
0
0
1
1
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
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
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
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
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
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
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
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
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
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
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
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
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
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
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
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
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
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
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
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
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
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
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
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
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
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
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
1
0
1
1
0
0
1
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
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
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
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
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
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
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
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
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
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
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
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
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
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
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
1
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
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
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
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
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
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
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
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
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
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
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
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
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
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
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
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
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
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
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
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
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
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
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
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
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
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
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
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
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
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
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
1
0
0
1
1
1
1
1
0
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
0
1
1
0
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
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
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
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
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
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
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
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
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
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
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
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
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
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
1
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
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
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
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
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
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
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
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
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
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
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
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
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
0
0
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
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
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
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
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
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
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
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
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
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
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
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
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
0
0
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
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
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
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
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
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
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
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
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
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
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
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
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
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
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
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
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
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
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
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
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
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
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
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
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
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
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
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
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
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
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
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
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
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
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
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
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
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
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
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
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
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
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
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
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
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
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
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
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
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
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
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
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
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
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
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
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
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
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
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
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
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
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
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
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
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
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
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
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
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
0
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
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
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
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
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
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
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
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
1
0
0
0
0
0
1
0
1
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
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
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
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
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
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
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
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
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
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
1
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
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
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
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
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
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
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
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
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
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
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
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
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
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
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
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
0
1
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
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
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
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
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
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
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
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
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
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
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
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
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
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
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
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
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
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
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
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
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
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
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
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
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
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
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
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
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
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
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
1
1
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
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
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
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
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
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
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
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
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
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
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
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
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
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
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
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
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
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
0
0
0
1
1
0
1
1
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
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
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
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
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
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
0
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
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
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
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
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
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
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
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
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
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
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
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
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
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
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
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
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
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
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
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
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
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
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
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
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
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
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
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
0
1
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
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
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
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
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
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
1
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
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
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
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
0
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
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
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
1
1
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
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
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
0
0
0
1
1
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
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
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
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
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
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
0
0
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
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
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
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
0
0
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
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
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
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
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
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
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
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
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
1
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
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
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
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
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
1
0
1
0
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
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
1
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
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
1
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
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
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
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
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
1
0
0
0
1
1
1
0
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
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
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
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
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
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
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
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
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
0
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
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
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
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
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
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
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
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
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
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
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
0
1
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
0
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
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
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
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
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
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
0
0
0
0
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
0
0
0
0
0
0
0
0
0
0
0
0
0
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
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
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
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
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
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
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
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
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
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
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
0
0
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
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
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
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
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
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
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
0
1
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
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
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
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
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
1
1
1
0
0
1
1
1
0
0
1
0
1