#!/usr/bin/python2 # -*- coding: utf-8 -*- # † from bisect import bisect_left def index(arr, x): i = bisect_left(arr, x) return i if i!=len(arr) and arr[i]==x else -1 exists = lambda arr, x: index(arr, x) >= 0 n = int(raw_input()) d = map(int, raw_input().split()) d.sort() def f(x, y): if (x, y) == (0, 0): return 0 dist = abs(x) + abs(y) # 1回でいけるか if exists(d, dist): return 1 # 2回でいけるか for i in xrange(n): left = dist - d[i] if left < 0: break if exists(d[:i], left) or exists(d[i+1:], left): return 2 return -1 x, y = map(int, raw_input().split()) res = f(x, y) print res