#include<iostream>
using namespace std;
const int maxn=1e6+10;
int mmax=0;
long long a[maxn];
long long n,m;
long long M(int h){
long long sum=0;
for(int i=1;i<=n;i++){
if(a[i]>h){sum+=a[i]-h;}
}
return sum;
}
int twofen(int left,int right){
while(left<right){
int mid=(left+right)/2;
if(M(mid)>=m)left=mid+1;
else right=mid;
}
return left-1;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){cin>>a[i];
if(a[i]>mmax){mmax=a[i];}
}
printf("%d",twofen(1,mmax));
return 0;
}