from collections import deque N = int(input()) S, T = map(int, input().split()) stones = [S] + list(map(int, input().split())) + [T] G = [list() for _ in range(N + 2)] for i in range(N + 2): x = stones[i] for j in range(i + 1, N + 2): y = stones[j] cnt = 0 for k in range(30): if (x>>k)&1 != (y>>k)&1: cnt += 1 if cnt <= 1: G[i].append(j) G[j].append(i) dist = [-1]*(N + 2) dist[0] = 0 que = deque() que.append(0) while que: pos = que.popleft() for nex in G[pos]: if dist[nex] == -1: dist[nex] = dist[pos] + 1 que.append(nex) if dist[-1] == -1: print(-1) else: print(dist[-1] - 1)