import sys import bisect n = int(sys.stdin.readline()) d_list = list(map(int, sys.stdin.readline().split())) x, y = map(int, sys.stdin.readline().split()) D = abs(x) + abs(y) if D == 0: print(0) sys.exit() d_set = set(d_list) if D in d_set: print(1) sys.exit() # Preprocess even and odd lists, sorted even = [] odd = [] for d in d_list: if d % 2 == 0: even.append(d) else: odd.append(d) even.sort() odd.sort() found = False for d1 in d_list: K = max(D - d1, 0) target_parity = (D + d1) % 2 target = even if target_parity == 0 else odd if not target: continue idx = bisect.bisect_left(target, K) if idx < len(target): found = True break print(2 if found else -1)