URL
https://opencores.org/ocsvn/viterbi_decoder_axi4s/viterbi_decoder_axi4s/trunk
Subversion Repositories viterbi_decoder_axi4s
[/] [viterbi_decoder_axi4s/] [trunk/] [testbench/] [WiFi_121_91/] [decoded_BL_200_WL_55_AL_50_out.txt] - Rev 2
Compare with Previous | Blame | View Log
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
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
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
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
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
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
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
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
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
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
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
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
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
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
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
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
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
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
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
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
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
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
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
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
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
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
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
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
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
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
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
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
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
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
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
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
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
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
0
0
0
0
0
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
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
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
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
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
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
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
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
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
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
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
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
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
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
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
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
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
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
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
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
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
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
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
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
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
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
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
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
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
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
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
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
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
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
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
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
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
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
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
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
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
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
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
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
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
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
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
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
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
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
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
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
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
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
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
0
0
0
0
0
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
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
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
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
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
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
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
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
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
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
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
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
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
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
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
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
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
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
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
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
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
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
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
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
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
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
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
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
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
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
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
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
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
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
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
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
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
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
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
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
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
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
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
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
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
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
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
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
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
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
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
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
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
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
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
0
0
0
0
0
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
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
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
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
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
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
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
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
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
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
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
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
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
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
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
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
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
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
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
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
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
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
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
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
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
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
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
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
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
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
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
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
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
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
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
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
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
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
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
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
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
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
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
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
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
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
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
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
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
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
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
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
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
0
0
0
0
0
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
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
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
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
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
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
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
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
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
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
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
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
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
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
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
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
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
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
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
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
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
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
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
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
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
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
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
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
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
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
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
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
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
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
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
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
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
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
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
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
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
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
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
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
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
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
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
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
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
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
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
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
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
0
0
0
0
0
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
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
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
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
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
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
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
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
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
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
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
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
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
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
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
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
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
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
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
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
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
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
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
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
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
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
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
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
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
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
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
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
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
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
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
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
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
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
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
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
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
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
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
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
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
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
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
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
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
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
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
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
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
0
0
0
0
0
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
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
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
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
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
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
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
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
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
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
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
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
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
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
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
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
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
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
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
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
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
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
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
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
1
1
0
1
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
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
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
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
0
1
1
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
0
0
0
1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
0
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
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
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
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
1
0
0
0
0
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
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
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
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
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
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
0
0
1
0
0
1
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
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
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
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
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
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
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
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
0
1
0
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
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
0
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
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
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
0
0
0
0
0
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
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
1
0
0
0
0
0
0
1
0
0
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
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
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
0
0
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
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
0
0
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
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
1
0
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
0
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
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
1
1
1
0
0
1
0
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
0
0
1
0
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
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
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
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
1
0
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
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
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1