#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N = 1e6 + 10;
ll n, a[N],big,m;
int main()
{
scanf("%lld%lld", &n, &m);
for (int i = 0; i < n; i++)
{
scanf("%lld", &a[i]);
if(a[i] > big) big = a[i];
}
int l = 0, r =big;
int cnt = 0;
while (l < r)
{
cnt = 0;
int mid = l + r + 1 >> 1;
for (int i = n - 1;i >= 0; i--)
{
if (a[i] >= mid) cnt += (a[i] - mid);
}
if (cnt >= m) l = mid;
else r = mid - 1;
}
cout << r;
system("pause");
return 0;
}
```