import sys n = int(input()) d_arr = list(map(int, input().split())) d_even = [] d_odd = [] for d in d_arr: if d % 2 == 0: d_even.append(d) else: d_odd.append(d) x, y = map(lambda n: abs(int(n)), input().split()) if x == 0 and y == 0: print(0) sys.exit() for d in d_arr: if d == x + y: print(1) sys.exit() d_even_max = max(d_even) if len(d_even) >= 1 else -1 d_even_min = min(d_even) if len(d_even) >= 1 else -1 d_odd_max = max(d_odd) if len(d_odd) >= 1 else -1 d_odd_min = min(d_odd) if len(d_odd) >= 1 else -1 for d in d_even: if (x + y) % 2 == 0: if x + y + d >= d_even_min and abs(x + y - d) <= d_even_max: print(2) sys.exit() else: if x + y + d >= d_odd_min and abs(x + y - d) <= d_odd_max: print(2) sys.exit() for d in d_odd: if (x + y) % 2 == 0: if x + y + d >= d_odd_min and abs(x + y - d) <= d_odd_max: print(2) sys.exit() else: if x + y + d >= d_even_min and abs(x + y - d) <= d_even_max: print(2) sys.exit() print(-1)