#include<iostream>
using namespace std;
int n,m,ans=2147483647;
const int MAX_N=1e6+1;
int a[MAX_N];
bool check(int h){
int sum=0;
for(int i=1;i<=n;i++){
if(a[i]>h){
sum+=(a[i]-h);
}
}
if(sum>=m){
return true;
}else{
return false;
}
}
int main(){
int n,m,maxn;
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
maxn=max(maxn,a[i]);
}
if(m==0){
cout<<"0"<<endl;
return 0;
}
int l=1,r=maxn;
int mid;
while(l<=r){
mid=(l+r)>>1;
if(check(mid)){
ans=min(ans,mid);
l=mid+1;
}else{
r=mid-1;
}
}
cout<<ans;
return 0;
}