#include<iostream>
#include<algorithm>
#define llu unsigned long long
using namespace std;
llu sum(llu h[],llu n,llu mid)
{
llu ans=0;
for(llu i=0;i<n;i++)
{
if(mid > h[i])continue;
else ans += h[i]-mid;
}
return ans;
}
llu OKcut(llu h[],llu n,llu m)
{
llu left=0,right=h[n-1];
while(left<=right)
{
llu mid = (left+right)/2;
if(sum(h,n,mid)>=m)left=mid+1;
else right=mid-1;
}
return left-1;
}
int main()
{
llu n,m;
cin >> n >> m;
llu h[n+10];
for(llu i=0;i<n;i++)
cin >> h[i];
sort(h,h+n);
llu num = OKcut(h,n,m);
cout << num << endl;
return 0;
}