#include<bits/stdc++.h>
using namespace std;
void solve(){
long long int n,k;
cin>>n>>k;
vector<long long int>arr(n);
for(long long int i=0;i<n;i++){
cin>>arr[i];
}
sort(arr.begin(),arr.end());
long long int sol=arr[n-1]-arr[0];
vector<long long int> la(n), ra(n);
la[0]=0;
for(long long int i=1;i<n;i++){
la[i]= la[i-1]+(arr[i]-arr[i-1])*i;
}
ra[n-1]=0;
for(long long int i=n-2;i>=0;i--){
ra[i]=ra[i+1]+(arr[i+1]-arr[i])*(n-1-i);
}
long long int left=0, right;
long long int mn=arr[n-1]-arr[0];
while(left<n && k-la[left]>=0){
long long int kk=k;
kk=kk-la[left];
right=left;
while(right<n){
if(kk-ra[right]<0){
right++;
}
else{
kk=kk-ra[right];
break;
}
}
if(kk==0 || (kk>0 && left==right)){
mn=min(mn,arr[right]-arr[left]);
}
else if(kk>0 && left<right){
long long int i,j;
if(left<n-1-right){
i=kk/(left+1);
if(arr[left]+i<arr[left+1] && arr[left]+i<arr[right]){
mn=min(mn,arr[right]-arr[left]-i);
}
}
else{
j=kk/(n-right);
if(arr[right]-j>arr[right-1] && arr[right]-j>arr[left]){
mn=min(mn,arr[right]-arr[left]-j);
}
}
}
left++;
}
cout<<mn;
}
int main(){
solve();
return 0;
}