#include<iostream>
using namespace std;
long long N,M,a[1000001],l,r,mid;
int check(long long t)
{
long long i,s;
for(i=1;i<=N;i++)
if(a[i]>t)
s+=(a[i]-t);
if(s>=M)
return 1;
else
return 0;
}
int main()
{
long long i;
cin>>N>>M;
r=-1;
l=1;
for(i=1;i<=N;i++)
{
cin>>a[i];
r=max(r,a[i]);
}
while(l<=r)
{
mid=(l+r)/2;
if(check(mid)==1)
l=mid+1;
else
r=mid-1;
}
cout<<l-1;
return 0;
}