#include<bits/stdc++.h>
using namespace std;
int a[1000000], n, m;
long long max1;
long long sa(int w){
    long long s = 0;
    for(int i = 0; i < n; i++){
        if(a[i] > w){
            s += a[i] - w;
        }
    }
    return s;
}
void ss(int l, int r){
    if(l <= r){
        int mid = l + (r - l) / 2;
        long long cut = sa(mid);
        if(cut >= m){
            ss(mid + 1, r);
        } else {
            ss(l, mid - 1);
        }
    }
}
int main(){    
    cin >> n >> m;
    for(int i = 0; i < n; i++){
        cin >> a[i];
        if(a[i] > max1){
            max1 = a[i];
        }
    }
    int l = 0, r = max1;
    int ans = 0;
    while(l <= r){
        int mid = l + (r - l) / 2;
        long long cut = sa(mid);
        if(cut >= m){
            ans = mid;
            l = mid + 1;
        } else {
            r = mid - 1;
        }
    }
    cout << ans;
    return 0;
}
/**************************************************************
	Problem: 1908
	User: zzz
	Language: C++
	Result: Accepted
	Time:779 ms
	Memory:5980 kb
****************************************************************/