#include using namespace std; #include using namespace atcoder; #define rep(i, n) for (long long i = 0; i < (long long)(n); i++) #define REP(i, n) for (long long i = 1; i < (long long)(n); i++) typedef long long ll; using mint = modint998244353; int main() { ll n,k;cin>>n>>k; set st; vector v(n);rep(i,n){cin>>v[i];} rep(i,n){ for(ll j = 1;j*j <= v[j];j++){ if(v[i]%j==0){st.insert(j);st.insert(v[i]/j);} } } ll mx = 0; for(auto u : st){ ll sm = 0; rep(i,n){ sm += min(v[i]%u,u-(v[i]%u)); } if(k>=sm){mx = max(mx,u);} } cout << mx << endl; }