#include<iostream>
using namespace std;
int n;
long long m,a[1000010];
int f(long long x){
long long s=0;
for(int i=1;i<=n;i++){
if(a[i]-x>0){
s+=a[i]-x;
}
}
return s;
}
int main(){
cin>>n>>m;
long long maxx=0;
for(int i=1;i<=n;i++){
cin>>a[i];
if(a[i]>maxx){
maxx=a[i];
}
}
long long l=1,r=maxx,mid;
while(l<r){
mid=(l+r+1)/2;
if(f(mid)<m){
r=mid-1;
}else{
l=mid;
}
}
cout<<l<<endl;
return 0;
}