RT
#include <bits/stdc++.h>
using namespace std;
#define RE register
#define ll long long
ll n,m,imax=-233333333333;
ll f[1000100];
inline void fread(ll &x){
x=0;
ll f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
x*=f;
}
inline ll work(ll x){
//cout<<x<<endl;
ll ans=0;
for(RE ll i=1;i<=n;i++){
if(f[i]>x){
ans+=f[i]-x;
}
}
return ans;
}
int main(){
fread(n);
fread(m);
for(RE ll i=1;i<=n;i++){
fread(f[i]);
imax=max(f[i],imax);
}
ll l=0,r=imax;
while(l<=r){
ll mid=(l+r)/2;
ll t=work(mid);
if(t>m){
l=mid+1;
}else{
r=mid-1;
}
}
cout<<l;
return 0;
}