#include <bits/stdc++.h>
using namespace std;
vector<int64_t> s;
vector<int64_t> e;
int64_t cnp(int64_t l, int64_t r, int64_t tar)
{
if(l>r) return 9999999999999999;
if(l==r)
{
//int arc = e[l];
if(e[l]<=tar)
return l;
return 9999999999999999;
}
int64_t mid = (l+r)/2;
if(e[mid]<=tar)
return min(mid,cnp(l,mid-1,tar));
return cnp(mid+1,r,tar);
}
int main()
{
/*freopen("input.inp","r",stdin);
freopen("output.out","w",stdout);*/
int64_t n, k;
cin >> n >> k;
vector<int64_t> a(n);
for(int64_t i = 0;i<n;i++)
cin >> a[i];
sort(a.begin(),a.end());
s.assign(n,0);
e.assign(n,0);
for(int64_t i = 1;i<n;i++)
s[i] = (i)*(a[i]-a[i-1])+s[i-1];
for(int64_t i = n-2;i>=0;i--)
e[i] = (n-i-1)*(a[i+1]-a[i]) + e[i+1];
int64_t min_cost = 9999999999999999;
for(int64_t i = 0;i<n;i++)
{
if(s[i]<=k)
{
int64_t x = cnp(i,n-1,k-s[i]);
//cout << i << ' ' << x << '\n';
if(x==i)
{
cout << 0;
return 0;
}
int64_t tt = max(min((k-s[i]-e[x])/(i+1),a[i+1]-a[i]),min((k-s[i]-e[x])/(n-x),a[x]-a[x-1]));
min_cost = min(min_cost,a[x]-a[i]-tt);
}
}
cout << min_cost << '\n';
/*for(int i = 0;i<n;i++)
cout << a[i] << ' ';
cout << '\n';
for(int i = 0;i<n;i++)
cout << s[i] << ' ';
cout << '\n';
for(int i = 0;i<n;i++)
cout << e[i] << ' ';*/
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp2ZWN0b3I8aW50NjRfdD4gczsKdmVjdG9yPGludDY0X3Q+IGU7CmludDY0X3QgY25wKGludDY0X3QgbCwgaW50NjRfdCByLCBpbnQ2NF90IHRhcikKewogICAgaWYobD5yKSByZXR1cm4gOTk5OTk5OTk5OTk5OTk5OTsKICAgIGlmKGw9PXIpCiAgICB7CiAgICAgICAgLy9pbnQgYXJjID0gZVtsXTsKICAgICAgICBpZihlW2xdPD10YXIpCiAgICAgICAgICAgIHJldHVybiBsOwogICAgICAgIHJldHVybiA5OTk5OTk5OTk5OTk5OTk5OwogICAgfQogICAgaW50NjRfdCBtaWQgPSAobCtyKS8yOwogICAgaWYoZVttaWRdPD10YXIpCiAgICAgICAgcmV0dXJuIG1pbihtaWQsY25wKGwsbWlkLTEsdGFyKSk7CiAgICByZXR1cm4gY25wKG1pZCsxLHIsdGFyKTsKfQppbnQgbWFpbigpCnsKICAgIC8qZnJlb3BlbigiaW5wdXQuaW5wIiwiciIsc3RkaW4pOwogICAgZnJlb3Blbigib3V0cHV0Lm91dCIsInciLHN0ZG91dCk7Ki8KICAgIGludDY0X3QgbiwgazsKICAgIGNpbiA+PiBuID4+IGs7CiAgICB2ZWN0b3I8aW50NjRfdD4gYShuKTsKICAgIGZvcihpbnQ2NF90IGkgPSAwO2k8bjtpKyspCiAgICAgICAgY2luID4+IGFbaV07CiAgICBzb3J0KGEuYmVnaW4oKSxhLmVuZCgpKTsKICAgIHMuYXNzaWduKG4sMCk7CiAgICBlLmFzc2lnbihuLDApOwogICAgZm9yKGludDY0X3QgaSA9IDE7aTxuO2krKykKICAgIHNbaV0gPSAoaSkqKGFbaV0tYVtpLTFdKStzW2ktMV07CiAgICBmb3IoaW50NjRfdCBpID0gbi0yO2k+PTA7aS0tKQogICAgZVtpXSA9IChuLWktMSkqKGFbaSsxXS1hW2ldKSArIGVbaSsxXTsKICAgIGludDY0X3QgbWluX2Nvc3QgPSA5OTk5OTk5OTk5OTk5OTk5OwogICAgZm9yKGludDY0X3QgaSA9IDA7aTxuO2krKykKICAgIHsKICAgICAgICBpZihzW2ldPD1rKQogICAgICAgIHsKICAgICAgICAgICAgaW50NjRfdCB4ID0gY25wKGksbi0xLGstc1tpXSk7CiAgICAgICAgICAgIC8vY291dCA8PCBpIDw8ICcgJyA8PCB4IDw8ICdcbic7CiAgICAgICAgICAgIGlmKHg9PWkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNvdXQgPDwgMDsKICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGludDY0X3QgdHQgPSBtYXgobWluKChrLXNbaV0tZVt4XSkvKGkrMSksYVtpKzFdLWFbaV0pLG1pbigoay1zW2ldLWVbeF0pLyhuLXgpLGFbeF0tYVt4LTFdKSk7CiAgICAgICAgICAgIG1pbl9jb3N0ID0gbWluKG1pbl9jb3N0LGFbeF0tYVtpXS10dCk7CiAgICAgICAgfQogICAgfQogICAgY291dCA8PCBtaW5fY29zdCA8PCAnXG4nOwogICAgLypmb3IoaW50IGkgPSAwO2k8bjtpKyspCiAgICAgICAgY291dCA8PCBhW2ldIDw8ICcgJzsKICAgIGNvdXQgPDwgJ1xuJzsKICAgIGZvcihpbnQgaSA9IDA7aTxuO2krKykKICAgICAgICBjb3V0IDw8IHNbaV0gPDwgJyAnOwogICAgY291dCA8PCAnXG4nOwogICAgZm9yKGludCBpID0gMDtpPG47aSsrKQogICAgICAgIGNvdXQgPDwgZVtpXSA8PCAnICc7Ki8KICAgIHJldHVybiAwOwp9Cg==