petite-difference-challenge2/test-A/out.tsv
Iwona Christop d9d70b1335 s443930
2022-04-26 23:36:17 +02:00

134619 lines
394 KiB
Plaintext

1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
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
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
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
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
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
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
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
0
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
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
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
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
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
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
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
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
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
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
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
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
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
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
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
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
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
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
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
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
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
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
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
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
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
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
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
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
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
0
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
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
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
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
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
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
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
0
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
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
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
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
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
0
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
0
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
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
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
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
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
0
0
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
0
1
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
0
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
1
0
0
1
0
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
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
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
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
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
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
1
1
0
0
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
0
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
0
0
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
0
1
1
0
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
0
1
1
0
0
0
0
1
0
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
0
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
0
1
0
0
1
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
0
0
0
1
1
0
1
0
1
0
0
0
1
0
1
0
0
0
1
1
1
1
0
0
0
0
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
0
0
1
0
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
1
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
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
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
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
1
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
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
0
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
1
1
0
1
0
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
0
0
1
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
0
0
1
1
0
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
0
0
0
0
1
0
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
0
0
1
1
0
1
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
0
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
0
0
0
0
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
0
1
0
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
0
0
0
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
0
1
0
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
0
1
0
1
0
0
1
0
0
1
1
1
1
0
0
0
1
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
1
1
0
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
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
0
1
0
0
0
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
0
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
0
0
0
0
1
0
0
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
0
0
1
0
0
1
0
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
1
0
0
0
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
0
1
0
1
1
0
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
0
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
1
0
1
1
0
1
0
0
0
1
0
1
0
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
0
0
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
0
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
0
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
0
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
1
1
0
0
0
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
0
0
1
0
1
1
0
0
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
0
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
0
1
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
0
0
0
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
0
1
1
1
1
0
0
0
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
0
1
1
0
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
0
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
0
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
0
1
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
1
1
1
0
0
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
0
0
0
0
0
1
0
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
1
0
1
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
1
0
1
0
1
0
0
0
0
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
0
1
0
0
0
1
1
0
1
0
0
0
1
1
1
1
1
0
1
0
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
0
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
0
1
0
1
0
0
1
0
1
1
1
1
1
0
1
1
0
1
0
0
0
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
0
0
1
1
0
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
1
1
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
1
1
0
1
1
1
0
0
0
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
1
0
0
0
0
0
1
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
0
1
1
1
0
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
0
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
0
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
1
1
1
1
0
0
0
0
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
0
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
0
0
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
0
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
0
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
0
0
1
0
0
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
1
0
1
0
1
0
0
0
0
0
1
1
1
0
0
0
0
1
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
0
0
0
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
0
0
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
0
0
0
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
0
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
0
0
1
0
0
1
1
0
0
0
0
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
0
1
1
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
0
0
1
1
1
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
0
0
0
1
0
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
1
0
1
0
0
0
1
1
1
0
0
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
0
0
0
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
1
1
0
1
1
1
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
0
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
0
0
0
0
0
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
0
0
1
0
1
0
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
0
1
1
0
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
0
1
1
0
0
1
0
1
0
1
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
0
0
1
1
0
1
1
0
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
0
0
1
1
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
0
1
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
0
0
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
0
0
0
1
0
0
1
0
1
1
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
0
0
0
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
0
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
0
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
0
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
0
0
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
0
0
1
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
0
0
1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
0
0
1
0
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
1
1
0
1
1
0
1
1
0
1
1
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
1
0
1
0
1
0
0
0
1
1
1
0
1
0
0
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
0
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
1
0
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
0
0
0
1
0
0
1
0
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
0
0
1
1
0
0
1
1
1
1
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
0
0
1
0
0
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
0
0
1
0
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
1
1
0
1
0
0
0
0
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
0
1
0
1
0
0
1
1
0
1
1
0
1
1
0
1
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
0
1
0
1
0
0
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
1
0
0
0
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
0
1
1
0
1
1
0
0
0
0
0
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
0
1
0
1
1
0
0
0
0
0
1
1
1
0
1
0
0
1
1
1
0
0
1
0
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
0
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
0
1
0
1
1
0
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
0
0
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
0
1
1
0
0
0
1
1
1
0
0
0
1
0
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
0
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
1
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
0
0
0
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
0
1
0
1
1
0
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
0
1
0
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
1
1
0
0
1
1
0
0
0
1
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
1
0
1
1
1
1
0
0
0
0
1
0
0
1
0
1
0
1
1
0
1
1
0
0
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
0
1
0
1
1
1
0
0
1
1
0
0
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
0
1
0
0
1
1
1
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
1
0
1
1
0
0
0
1
0
0
1
1
0
0
1
1
1
0
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
1
1
1
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
0
0
1
0
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
0
1
0
0
1
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
1
1
0
0
0
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
0
1
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
0
0
1
1
1
0
0
0
0
1
1
1
1
1
0
1
0
1
0
1
0
0
0
0
1
1
0
1
0
1
0
1
1
1
0
1
1
1
0
0
1
1
0
1
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
1
1
0
0
0
0
1
1
0
0
0
1
1
1
1
0
0
1
1
1
0
0
1
1
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
1
1
0
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
0
1
0
0
1
0
1
0
1
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
1
1
0
0
1
1
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
0
1
1
0
1
0
1
1
0
0
0
1
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
0
1
0
1
0
1
0
0
1
1
1
0
0
0
1
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
1
0
0
0
1
1
1
1
0
0
1
1
1
1
0
0
1
1
1
0
0
0
0
0
0
1
1
1
0
0
1
1
1
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
0
0
0
1
0
0
0
1
1
1
0
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
0
1
0
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
0
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
0
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
0
1
1
0
0
0
0
0
1
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
0
0
1
0
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
0
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
1
1
1
0
1
0
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
1
0
1
1
0
0
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
1
1
0
0
1
1
1
1
0
0
1
1
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
0
0
0
0
1
1
1
1
0
0
1
0
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
0
1
0
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
0
1
0
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
0
0
1
0
1
1
0
0
1
0
1
1
1
1
1
0
1
0
1
0
0
1
1
0
1
1
1
0
1
0
1
0
1
1
1
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
0
0
1
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
1
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
1
0
1
0
0
0
0
1
0
1
1
0
1
0
1
0
0
0
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
0
0
1
1
1
1
1
0
1
1
1
1
0
0
1
1
0
0
1
0
1
1
1
0
0
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
1
0
0
1
1
1
1
0
0
1
0
1
1
0
0
1
1
1
0
0
1
1
1
0
1
0
0
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
1
1
1
1
1
0
1
0
1
1
1
1
0
0
0
0
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
0
0
0
1
0
1
1
1
0
1
0
1
0
1
1
0
0
1
0
1
0
0
1
0
0
1
1
0
0
1
1
1
0
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
0
0
0
1
1
1
1
1
1
1
0
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
0
1
0
0
1
0
1
1
1
0
0
1
1
1
1
1
0
0
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
0
0
0
0
0
0
1
1
0
1
0
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
0
1
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
1
1
1
0
1
0
1
0
1
1
0
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
0
1
0
0
1
0
1
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
1
0
0
1
1
0
1
1
0
0
1
1
1
1
1
1
0
0
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
0
0
1
1
1
1
1
0
1
1
1
0
1
1
1
0
0
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
0
0
1
0
0
1
1
1
1
1
0
1
1
1
1
1
1
0
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
0
0
1
0
1
0
0
1
1
0
1
0
0
0
0
1
0
1
0
0
0
1
1
0
1
1
1
0
0
1
0
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
1
1
0
0
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
1
0
0
1
0
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
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
1
1
1
1
0
0
1
1
0
1
0
1
0
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
0
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
0
1
1
1
0
1
1
0
1
0
1
1
0
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
0
0
0
1
1
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
1
0
1
0
0
1
1
1
0
0
1
1
1
1
1
1
1
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
0
1
1
1
1
1
0
1
1
0
1
0
1
0
0
0
1
0
1
1
1
1
1
1
1
1
1
1
1
1
0
0
1
1
0
0
1
1
1
1
0
1
1
1
1
0
1
1
0
1
1
0
0
0
1
1
0
1
1
1
1
1
1
0
1
1
1
0
0
1
0
1
1
1
0
0
1
0
1
1
1
1
1
1
0
0
1
1
1
1
1
0
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
0
1
1
0
0
1
1
0
1
0
1
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
1
1
1
1
1
0
0
1
0
0
1
0
1
0
0
1
1
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
0
0
0
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
0
0
1
1
0
0
0
0
1
0
0
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
1
1
1
1
0
1
0
1
1
0
0
0
1
0
1
1
1
1
1
0
1
1
0
0
1
1
1
0
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1
1
1
1
0
1
0
1
1
1
0
1
0
0
1
1
1
1
1
1
0
1
0
1
0
1
1
1
1
1
1
0
1
1
1
0
1
0
0
1
0
1
1
1
1
1
1
0
0
1
0
1
0
1
1
1
1
0
1
1
1
1
0
1
0
1
0
1
1
1
1
0
1
1
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
0
0
0
1
1
1
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
1
1
1
1
0
1
0
1
1
0
1
0
1
1
0
0
0
1
1
1
1
1
1
0
1
1
0
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
1
0
0
0
0
1
1
0
0
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
1
1
1
0
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
0
0
1