#include<bits/stdc++.h>
using namespace std;
long long const maxN=1e6+10;
long long arr[maxN];
long long f(int mid,int N)
{
long long result=0;
for(int i=0;i<N;i++)
{
if(arr[i]>mid)
{
result+=arr[i]-mid;
}
}
return result;
}
int main(void)
{
long long N,M,num,left,right,mid,temp;
cin>>N>>M;
for(int i=0;i<N;i++)
{
cin>>arr[i];
right=max(M,arr[i]);
}
left=1;
while(left<=right)
{
mid=(left+right)/2;
temp=f(mid,N);
if(M==temp)
{
cout<<mid;
break;
}
else if(M<temp)
{
left=mid+1;
}
else
{
right=mid-1;
}
}
return 0;
}