#include <iostream>
#include <algorithm>
using namespace std;
int arr[1000000],woodscut[1000000];
int main() {
int n,m,maxheight=-10,wctd,minheight=0,mid;
cin >> n >> m;
for (int i=0;i<n;i++){
cin >> arr[i];
maxheight=max(arr[i],maxheight);
}
while (minheight<maxheight){
mid=(maxheight+minheight)/2;
for (int i=0;i<n;i++){
wctd+=max(0,arr[i]-mid);
}
if (wctd<=m){
maxheight=mid;
wctd=0;
}
else{
minheight=mid+1;
wctd=0;
}
}
cout << minheight;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgYXJyWzEwMDAwMDBdLHdvb2RzY3V0WzEwMDAwMDBdOwppbnQgbWFpbigpIHsKICAgIGludCBuLG0sbWF4aGVpZ2h0PS0xMCx3Y3RkLG1pbmhlaWdodD0wLG1pZDsKICAgIGNpbiA+PiBuID4+IG07CiAgICBmb3IgKGludCBpPTA7aTxuO2krKyl7CiAgICAgICAgY2luID4+IGFycltpXTsKICAgICAgICBtYXhoZWlnaHQ9bWF4KGFycltpXSxtYXhoZWlnaHQpOwogICAgfQogICAgd2hpbGUgKG1pbmhlaWdodDxtYXhoZWlnaHQpewogICAgICAgIG1pZD0obWF4aGVpZ2h0K21pbmhlaWdodCkvMjsKICAgIAlmb3IgKGludCBpPTA7aTxuO2krKyl7CiAgICAJCXdjdGQrPW1heCgwLGFycltpXS1taWQpOwogICAgCX0KICAgIAlpZiAod2N0ZDw9bSl7CiAgICAJCW1heGhlaWdodD1taWQ7CiAgICAJCXdjdGQ9MDsKICAgIAl9CiAgICAJZWxzZXsKICAgIAkJbWluaGVpZ2h0PW1pZCsxOwogICAgCQl3Y3RkPTA7CiAgICAJfQogICAgfQogICAgY291dCA8PCBtaW5oZWlnaHQ7Cn0=