from math import isqrt from functools import lru_cache n, m, a, b = map(int, input().split()) c = sorted(map(int, input().split())) d = set() for i in range(1, isqrt(n)+1): if n%i == 0: d.add(i); d.add(n//i) d = sorted(d) @lru_cache def main(n): if n == 1: return -b ans = 10**18 for v in d: if v >= n: break if n%v != 0: continue flag = True for w in c: if w > n: break if w%v == 0: flag = False; break if not flag: continue res = main(v) if res != -1: ans = min(ans, res+b+(n-v)//v*a) return ans if ans != 10**18 else -1 print(main(n))