Can you change bit-wise number to another (from source to destination) without facing blockers? You can change a bit at the time.
Example:
Source: 1010
Destination: 1100
Blockers: [1101, 1110]
Solution: 1010 -> 1110 -> 1100 : Wrong because 1110 is blocker
1010 -> 1000 -> 1100
If not possible return 0