def chevyshev(x): ans = [] for i in range(2*x+1): for j in range(2*x+1): if max(abs(i-x), abs(j-x)) == x: ans.append([i-x, j-x]) return ans def bfs(list, x, y): queue = [[0, 0]] visited = [] cnt = 0 while queue: stack = queue[:] queue.clear() while stack: label = stack.pop(0) if (label[0] == x) and (label[1] == y): return cnt if label in visited: continue visited.append(label) for i in list: queue = [[label[0] + i[0], label[1] + i[1]]] + queue cnt += 1 return -1 if __name__ == '__main__': n = int(input()) d = list(map(int, input().split())) x, y = [int(i) for i in input().split()] tmp = [] for i in d: tmp = tmp + chevyshev(i) print(bfs(tmp, x, y))