#include <bits/stdc++.h>
using namespace std;

int main(){
	int N,K;
	cin >> N >> K;
	vector<int> A(N);
	for(auto &i:A)cin >> i;
	
	int sum=accumulate(A.begin(),A.end(),0);
	vector<int> D;
	for(int i=1;i*i<=sum;i++){
		if(sum%i==0){
			D.push_back(i);
			D.push_back(sum/i);
		}
	}
	sort(D.begin(),D.end(),greater<int>());
	for(auto d:D){
		vector<int> a;
		for(int i=0;i<N;i++){
			a.push_back(A[i]%d);
		}
		sort(a.begin(),a.end());
		int x=0,y=N*d-accumulate(a.begin(),a.end(),0);
		for(int i=0;i<a.size();i++){
			x+=a[i];
			y-=(d-a[i]);
			if(x==y){
				if(x<=K){
					cout << d << endl;
					return 0;
				}
				break;
			}
		}
	}
	
	return 0;
}