2805

//2805  파라메트릭 서치
//나무 자르기 - 절단기의 높이 설정    h를 올리면 남은 길이가 줄어듬 그래서 문제는 [정해진 남은길이 이상, h의 높이구하기]
#include <bits/stdc++.h>
#define fIO ios_base::sync_with_stdio(false); \
cin.tie(NULL);
using namespace std;
 
int n;
long long m;
vector<int> tree;
 
bool is_possible(int h)
{
    long long sum = 0;
    for(int i = 0; i < n; i++)
    {
        if(tree[i] > h)
            sum += (tree[i]- h);
    }
    return sum >= m;
}
int main(void)
{
    fIO
    cin >> n >> m;
    tree.resize(n);
    for(int i = 0; i < n; i++)
    {
        cin >> tree[i];
    }
 
    int left = 0, right = *max_element(tree.begin(), tree.end());
    int answer = 0;
 
    while(left <= right)
    {
        int mid = (left + right) / 2;
        if(is_possible(mid))
        {
            answer = mid;
            left = mid + 1;
        }
        else
        {
            right = mid - 1;
        }
    }
 
    cout << answer << "\n";
 
}