from collections import defaultdict, deque n = int(input()) s, e = map(int, input().split()) A = list(map(int, input().split())) A = [s] + A + [e] nei_dict = defaultdict(list) for i in range(n + 1): for j in range(i + 1, n + 2): num = A[i] ^ A[j] cnt = 0 while num != 0: if num % 2 == 1: cnt += 1 if cnt == 2: break num //= 2 if cnt == 1: nei_dict[i].append(j) nei_dict[j].append(i) seen = set([0]) dq = deque([(0, 1)]) while dq: curr, cnt = dq.popleft() if curr == n + 1: print(cnt - 2) exit() for np in nei_dict[curr]: if np in seen: continue seen.add(np) dq.append((np, cnt + 1)) print(-1)