#include<bits/stdc++.h>
using namespace std;
#define maxn 1000100
#define ll long long
ll n,m;
ll h[maxn];
ll ans=0;
ll l=1,r,mid;
bool judge(ll x)
{
ll sum=0;
for(ll i=lower_bound(h+1,h+n+1,x)-h;i<=n;i++)
{
sum+=h[i]-x;
}
if(sum>m) return true;
else if (sum<m) return false;
else if(sum==m)
{
ans=mid;
return true;
}
}
int main()
{
cin>>n>>m;
for(ll i=1;i<=n;i++)
{
scanf("%lld",&h[i]);
r=max(r,h[i]);
}
sort(h+1,h+n+1);
while(l<r)
{
mid=(l+r)/2;
if(judge(mid)) l=mid+1;
else r=mid-1;
if(ans!=0)
{
break;
}
}
cout<<ans<<endl;
return 0;
}
第二个样例太大,跑不动,所以只能问问了qwq