#include <bits/stdc++.h>
using namespace std;
template <typename T>
inline T sqr(T n) {
  return n * n;
}
template <typename T>
inline T pmod(T n, T m) {
  return ((n % m) + m) % m;
}
template <typename T>
T power(T n, long long int p) {
  if (!p)
    return 1;
  else {
    T res = sqr(power(n, p >> 1));
    if (p & 1) res *= n;
    return res;
  }
}
template <typename T>
T bigmod(T n, long long int p, T m) {
  if (!p)
    return 1;
  else {
    T r = sqr(bigmod(n, p >> 1, m)) % m;
    if (p & 1) r = (r * n) % m;
    return r;
  }
}
template <typename T>
T exgcd(T a, T b, T& x, T& y) {
  if (!b) {
    x = 1;
    y = 0;
    return a;
  } else {
    T g = exgcd(b, a % b, y, x);
    y -= (a / b) * x;
    return g;
  }
}
template <typename T>
T modinv(T a, T m) {
  T x, y;
  exgcd(a, m, x, y);
  return pmod(x, m);
}
int test, cas = 1;
int main() {
  int n, k;
  cin >> n >> k;
  vector<int> v(n);
  for (int i = 0; i < n; i++) cin >> v[i];
  sort(v.begin(), v.end());
  int mid = n / 2;
  long long int sum = 0;
  for (int i = mid; i < n; i++) sum += v[i];
  int d = (sum + k) / (n - mid);
  if (d >= v[n - 1]) {
    cout << d << endl;
    return 0;
  }
  for (int i = n - 1; i >= mid; i--) {
    sum -= v[i];
    int d = (sum + k) / (i - mid);
    if (d >= v[i - 1]) {
      cout << d << endl;
      return 0;
    }
  }
  return 0;
}
