#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
const int length = 10001;
int N,M,R;
int n[length],au_sp[length];
int sum(int l,int r)
{
int sum_ = 0;
for(int i = l;i<=r;i++)
{
sum_ = sum_ + au_sp[i]*(r-i+1);
}
return sum_;
}
void search(int l,int r,int k)
{
int mid = (l+r)/2;
// printf("l = %d r = %d ",l,r);
if (l == r)
{
R = l ;
//printf("R = %d\n",R);
return;
}
//printf("sum = %d\n",sum(l,N-1));
if (k < sum(l,N-1)) search(mid,r,k);
if (k >= sum(l,N-1)) search(l,mid,k);
}
int main()
{
int sum_ = 0,high = 0;
scanf("%d%d",&N,&M);
for (int i = 0; i < N; i++)scanf("%d",&n[i]);
sort(n,n+N);
for(int i = 1;i<N;i++)au_sp[i] = n[i] - n[i-1];
au_sp[0] = n[0];
//for (int i = 0; i < N; i++)printf("%d ",n[i]);printf("\n");
//for (int i = 0; i < N; i++)printf("%d ",au_sp[i]);printf("\n");
search(0,N-1,M);
//printf("R = %d\n",R);
for(int i = R;i<N;i++)
{
sum_ = sum_ + au_sp[i]*(N-i);
}
//printf("sum_ = %d\n",sum_);
M = M - sum_;
while(M>0)
{
M = M - (N-R+1);
//printf("M=%d\n",M);
high++;
}
printf("%d",n[R-1]-high);
return 0;
}