#include
#include <bits/stdc++.h>
using namespace std;
bool isPossible(long long tree[],int size, long long m, long long mid)
{
long long wood = 0;
for (int i = 0; i < size; i++)
{
if (tree[i] >= mid)
{
wood += (tree[i] - mid);
}
}
if(wood >= m){
return 1;
}
return 0;
}
int main()
{
int N;
long long M;
cin >> N;
cin >> M;
long long tree[N];
for (int i = 0; i < N; i++)
{
cin >> tree[i];
}
long long s = 0, maxi = -1;
long long ans = -1;
for (int i = 0; i < N; i++)
{
maxi = max(maxi, tree[i]);
}
long long e = maxi;
long long mid = s + (e - s)/2;
while (s <= e)
{
if (isPossible(tree, N, M, mid))
{
ans = mid;
s = mid + 1;
}
else
{
e = mid - 1;
}
mid = s + (e - s) / 2;
}
cout << "Answer : " << ans;
return 0;
}