#include <bits/stdc++.h>
using namespace std;
int besthub(int R, int L, int X[], long long B)
{
vector<long long> pref(R+1,0);
for(int i=0;i<R;i++)
pref[i+1] = pref[i] + X[i];
auto can = [&](int K)->bool
{
for(int l=0; l+K-1<R; l++)
{
int r = l + K - 1;
int m = (l + r) / 2;
long long median = X[m];
long long leftCost = median*(m-l) - (pref[m] - pref[l]);
long long rightCost = (pref[r+1] - pref[m+1]) - median*(r-m);
if(leftCost + rightCost <= B)
return true;
}
return false;
};
int low = 1, high = R, ans = 1;
while(low <= high)
{
int mid = (low + high) / 2;
if(can(mid)) ans = mid, low = mid + 1;
else high = mid - 1;
}
return ans;
}