from bisect import bisect def main(): N = int(input()) D = tuple(map(int, input().split())) X, Y = map(int, input().split()) p = abs(X) + abs(Y) if p == 0: print(0) elif N == 1: if p % D[0]: print(-1) else: print(p // D[0]) return div_ = [] mod_ = [] apndd = div_.append apndm = mod_.append for i in D: d, m = divmod(max(p, i), min(p, i)) apndd(d) apndm(m) num = [] apnd = num.append for i, j in zip(div_, mod_): if j == 0 or j in D: apnd(i) print(min(num) + 1) main()