#include <bits/stdc++.h>
using namespace std;
long long n, a[1000001], k;
void nhap() {
  cin >> n >> k;
  for (int i = 1; i <= n; ++i) cin >> a[i];
  sort(a + 1, a + n + 1);
}
void xulyl(long long sl1, long long l) {
  if ((a[l + 1] - a[l]) * sl1 <= k) {
    k = k - (a[l + 1] - a[l]) * sl1;
    a[l] = a[l + 1];
  } else {
    long long o = k / sl1;
    k = 0;
    a[l] = a[l] + o;
    return;
  }
}
void xulyr(long long sl2, long long r) {
  if ((a[r] - a[r - 1]) * sl2 <= k) {
    k = k - (a[r] - a[r - 1]) * sl2;
    a[r] = a[r - 1];
  } else {
    long long o = k / sl2;
    k = 0;
    a[r] = a[r] - o;
    return;
  }
}
void sol() {
  long long l = 1, r = n;
  while (l < r && k > 0) {
    while (a[l] == a[l + 1] && l < n) ++l;
    while (a[r] == a[r - 1] && r > 1) --r;
    if (l > r) break;
    long long sl1 = l, sl2 = n - r + 1;
    if (sl1 < sl2)
      xulyl(sl1, l);
    else
      xulyr(sl2, r);
  }
  cout << a[r] - a[l];
}
int main(int argc, const char* argv[]) {
  nhap();
  sol();
  return 0;
}
