#include<vector>
#include<iostream>
#include<algorithm>
using namespace std;
long long n,m;
long long binary_search(vector<long long> a)
{ long long max=*(max_element(a.begin(),a.end()));
long long high=max;
long long low=0;
long long sum=0;
while(low<=high) {
long long sum=0;
long long hight=low+(high-low)/2;
for(long long i=0;i<n;i++) {
long long temp=a[i]>hight?a[i]-hight:0;
sum+=temp;
}
if(sum>m) {
low =hight+1;}
else if(sum<m){
high=hight-1; }
else{
return hight;
}
}
return -1;
}
int main(){
vector <long long> a(1e6+5);
cin>>n;
cin>>m;
for(long long i=0;i<n;i++)
{
cin>>a[i];
}
long long k =binary_search(a);
cout<<k;
return 0;
}