#include<bits/stdc++.h>usingnamespace std;#define _rep(i, a, b) for (int i = (a); i <= (b); ++i)#define _rev(i, a, b) for (int i = (a); i >= (b); --i)#define _for(i, a, b) for (int i = (a); i < (b); ++i)#define _rof(i, a, b) for (int i = (a); i > (b); --i)#define oo 0x3f3f3f3f#define ll long long#define db double#define eps 1e-8#define bin(x) cout << bitset<10>(x) << endl;#define what_is(x) cerr << #x << " is " << x << "s" << endl;#define met(a, b) memset(a, b, sizeof(a))#define all(x) x.begin(), x.end()#define pii pair<int, int>constint maxn =2e5+10;
vector<ll> a;
ll nxt(){
ll ret =0;scanf("%d",&ret);return ret;}
ll sum[maxn];signedmain(){
ll n =nxt(), k =nxt();
a.push_back(0);_rep(i,1, n){
ll tmp =nxt();
a.push_back(tmp);}sort(a.begin()+1, a.end());_rep(i,1, n)
sum[i]= a[i]+ sum[i -1];
ll middle = n /2+1;
ll l = a[n /2+1], r = l + k;while(r > l){
ll mid =(l + r +1)>>1;
ll pos =upper_bound(a.begin()+1, a.end(), mid)- a.begin()-1;if( mid *(pos - middle +1)-(sum[pos]- sum[middle -1])> k){
r = mid -1;}else{
l = mid;}}
cout << l << endl;}