#include<bits/stdc++.h>
using namespace std;
const int N = 105;
const int lim=31623;
int cnt;
long long n,k, p[2*N*lim], a[N], ans;
int main()
{
scanf("%lld%lld",&n,&k);
for(int i = 1; i <= n; i++)
{
scanf("%lld",&a[i]);
k += a[i];
for(int j = 1; j * j <= a[i]; j++)
{
p[++ cnt] = j;
p[++ cnt] = (a[i] - 1) / j + 1;
}
}
sort(p+1,p+1+cnt);
int m = unique(p + 1, p + 1 + cnt) - p - 1;
for(int i = 1; i <= m; i++)
{
long long cur = 0;
for(int j = 1; j <= n; j++)
cur = cur + (a[j]-1) / p[i] + 1;
long long mx = k /cur;
if(mx >= p[i]) ans = mx;
}
printf("%lld",ans);
return 0;
}