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)