#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
long long a[1000100],n,m,ax=0;
int read()
{
int f=1,k=0;
char c=getchar();
while(c<'0'||c>'9')
{
if(c=='-')
{
f=-1;
}
c=getchar();
}
while(c>='0'&&c<='9')
{
k=k*10+c-'0';
c=getchar();
}
return f*k;
}
int ef()
{
long long l=1,r=ax;
while(l<r)
{
long long ans=0;
long long mid=(l+r)/2;
for(long long i=1;i<=n;i++)
{
if(a[i]>mid)
{
ans+=a[i]-mid;
}
}
if(ans>m)
{
l=mid+1;
}
else r=mid;
}
return l;
}
int main()
{
n=read();m=read();
for(long long i=1;i<=n;i++)
{
cin>>a[i];
ax=max(a[i],ax);
}
cout<<ef();
}