#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <iostream>
using namespace std;
long long N, M;
long long H[1000000];
long long totalLength(long long n)
{
long long length = 0;
for (int i = 0; i < N; i++)
{
if (H[i] - n > 0)
length += (H[i] - n);
}
// cout << length;
return length;
}
int main()
{
cin >> N >> M;
for (int i = 0; i < N; i++)
cin >> H[i];
sort(H, H + N);
long long down = 0;
long long top = H[N - 1];
long long ans = 0;
while (down <= top)
{
long long mid = (down + top) / 2;
long long cnt = totalLength(mid);
// cout << "down " << down << " top " << top << " length " << cnt << "\n";
if (cnt >= M)
{
down = mid + 1;
ans = mid;
}
else
{
top = mid - 1;
}
}
cout << ans;
return 0;
}