/*
█████████───███─────────███───███─────────████████████───███████████████───████████████───████████████───█████████───────
█████████───███─────────███───███─────────████████████───███████████████───████████████───████████████───█████████───────
█████████───███─────────███───███─────────████████████───███████████████───████████████───████████████───█████████───────
███─────────███─────────███───███─────────███──────███───███───███───███───███──────███───███──────███───███─────────────
███─────────███─────────███───███─────────███──────███───███───███───███───███──────███───███──────███───███─────────────
███─────────███─────────███───███─────────███──────███───███───███───███───███──────███───███──────███───███─────────────
█████████──────███───███──────███─────────████████████───███───███───███───████████████───███──────███───█████████───────
█████████──────███───███──────███─────────████████████───███───███───███───████████████───███──────███───█████████───────
█████████──────███───███──────███─────────████████████───███───███───███───████████████───███──────███───█████████───────
███────────────███───███──────███─────────███──────███───███───███───███───███────────────███──────███─────────███───────
███────────────███───███──────███─────────███──────███───███───███───███───███────────────███──────███─────────███───────
███────────────███───███──────███─────────███──────███───███───███───███───███────────────███──────███─────────███───────
█████████─────────███─────────█████████───███──────███───███───███───███───███────────────████████████───█████████───────
█████████─────────███─────────█████████───███──────███───███───███───███───███────────────████████████───█████████───────
█████████─────────███─────────█████████───███──────███───███───███───███───███────────────████████████───█████████───────
*/
/**

**/
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define fori(n) for ( int i = 0; i < (n);i++)
#define forj(n) for ( int j = 0; j < (n);j++)
#define fork(n) for ( int k = 0; k < (n);k++)
#define forghj(n) for ( int ghj = 0; ghj < (n);ghj++)
#define fori1(n) for ( int i = (n)-1; i >= 0;i--)
#define all(vector) (vector).begin(),(vector).end()
#define ff first
#define ss second
#define pb push_back
#define mp make_pair
#define INF 1e9+7
#define EPS 1e-6
#define _FORTIFY_SOURCE 0
#pragma GCC optimize("Ofast")
#pragma GCC optimize("no-stack-protector")
#pragma GCC optimize("unroll-loops")
#pragma GCC target("sse,sse2,sse3,ssse3,popcnt,abm,mmx,tune=native")
#pragma GCC optimize("fast-math")
#pragma GCC optimize "-O3"

int n, k;
vector < int > a;
bool check(int d) {
    vector < int > keks;
    keks.resize(n);
    fori(n) keks[i] = a[i] % d;
    sort(all(keks));
    vector < int > pref;
    pref.resize(n + 1);
    for (int i = n - 1; i >= 0; i--) {
        pref[i] = pref[i + 1];
        pref[i] += d - keks[i];
    }
    int sum = 0;
    for (int i = 0; i < n; i++) {
        sum += keks[i];
        if (sum == pref[i + 1] && sum <= k) {
            return 1;
        }
    }
    return 0;
}
int main() {
    cin >> n >> k;
    a.resize(n);
    fori(n) cin >> a[i];
    int sum = 0;
    fori(n) sum += a[i];
    vector < int > del;
    for (int i = 1; i * i <= sum; i++) {
        if (sum % i == 0) {
            del.pb(i);
            if (i * i != sum) del.pb(sum / i);
        }
    }
    sort(all(del));
    fori1(del.size()) {
        if (check(del[i])) {
            cout << del[i];
            return 0;
        }
    }
}
/*
1
4
2 4 3 5
*/





Measured memory_bytes: 256