N,K=map(int, input().split()) A=list(map(int, input().split())) def make_divisors(n): lower_divisors , upper_divisors = [], [] i = 1 while i*i <= n: if n % i == 0: lower_divisors.append(i) if i != n // i: upper_divisors.append(n//i) i += 1 return lower_divisors + upper_divisors[::-1] B=[] for a in A: for b in make_divisors(a): B.append(b) B=sorted(list(set(B))) ans=1 for b in B: if b==1: continue c=0 for a in A: cc=a%b c+=min(cc,b-cc) if c<=K: ans=b print(ans)