using namespace std;
const int N=1e6+7;
int a[N];
int main(){
int n,m;
scanf("%d",&n,&m);
int maxx,minn;
for(int i=1;i<=n;i++){
scanf("%d",&a[i]);
}
sort(a+1,a+n+1);
maxx=a[1];
minn=a[1];
for(int i=2;i<=n;i++){
maxx=max(maxx,a[i]);
minn=min(minn,a[i]);
}
int l=minn,r=maxx;
while(l<=r){
int mid=(l+r)/2;
int num=0;
for(int i=1;i<=n;i++){
num+=(a[i]-mid);
}
if(num<m){
r=mid-1;
}
if(num>m){
l=mid+1;
}
if(num==m){
printf("%d",mid);
return 0;
}
}
printf("%d",r);
return 0;
}``````