N, K = map(int, input().split())
A = list(map(int, input().split()))

divisors = []
for i in range(N):
    j = 1
    while True:
        if j * j > A[i]:
            break
        if A[i] % j == 0:
            divisors.append(j)
            divisors.append(A[i] // j)
        j += 1

ans = 0
for div in divisors:
    plus_times = 0
    for i in range(N):
        plus_times += min(A[i] % div, div - A[i] % div)
    if plus_times <= K:
        ans = max(ans, div)
print(ans)