#include<bits/stdc++.h>
using namespace std;
int h[501],fac[10001],a[501],n,k;
bool check(int d){
	int t=0,sum=0,s=0;
	for(int i=1;i<=n;i++){
		h[i]=a[i]%d;	
		t+=d-h[i];
	}
	sort(h+1,h+n+1);
	for(int i=1;i<=n;i++){
		sum+=h[i];s+=d-h[i];
		if(sum>k)return false;
		if(t-s==sum)return true;
	}
}
int main(){
	int sum=0,cnt=0,ans=0;
	cin>>n>>k;
	for(int i=1;i<=n;i++)cin>>a[i],sum+=a[i];
	for(int i=1;i*i<=sum;i++){
		if(sum%i==0){
			if(check(sum/i)){printf("%d",sum/i);return 0;}
			if(check(i)){ans=max(ans,i);}
		}
	}
	printf("%d",ans);
}