#include <iostream>
#include <algorithm>
const int maxn = 1000005;
int H[maxn];
int N,M;
auto count_= [](int height)->int{
int ans_=0;
for(int i=1;i<=N;i++){
if(H[i]>height){
ans_+=H[i]-height;
}
}
return ans_;
};
auto er_fen = [](int left ,int right,int key)->int{
while(left<right)
{
auto mid =(left+right)/2;
if(count_(mid)>=key){
right=mid;
}
if(count_(mid)<key){
left=mid+1;
}
}
if(H[left]=key) return left;
else return -1;
};
int main()
{
std::cin>>N>>M;
std::cin>>H[1];
int max_=H[1],min_=H[1];
for(int i=2;i<=N;i++){
std::cin>>H[i];
if(H[i]>max_){
max_=H[i];
}
if(H[i]<min_){
min_=H[i];
}
}
std::cout<<er_fen(min_,max_,M)<<std::endl;
return 0;
}
https://www.luogu.com.cn/record/97547017 哼哼哼 啊啊啊啊啊啊啊