#define int long long
using namespace std;
int n,m,a[5000005],ans,cnt,maxx=-1;
int check(int x){
int sum=0;
for(int i=1;i<=n;i++){
if(a[i]>=x){
sum+=(a[i]-x);
}
}
if(sum>=m){
return x;
}else{
return x-1;
}
}
int count(int x){
int sum=0;
for(int i=1;i<=n;i++){
if(a[i]>=x){
sum+=(a[i]-x);
}
}
return sum;
}
int ef(int l,int r,int fnl){
if(l>=r){
return check(l);
}
int mid=(l+r)/2,ans=count(mid);
if(ans<fnl){
ef(l,mid-1,fnl);
}else{
ef(mid+1,r,fnl);
}
}
signed main(){
scanf("%lld%lld",&n,&m);
for(int i=1;i<=n;i++){
scanf("%lld",&a[i]);
maxx=max(maxx,a[i]);
}
cout<<ef(1,maxx,m);
return 0;
}