#include "ricehub.h"
#include <algorithm>
const int N = 1e5 + 5;
long long pref[N];
long long X[N];
int n;
long long f(int l, int r)
{
int mid = (l + r) / 2;
return (1ll * X[mid] * (mid - l + 1) - (pref[mid] - pref[l - 1]) +
(pref[r] - pref[mid]) - 1ll * X[mid] * (r - mid));
}
int besthub(int R, int L, int X[], long long B)
{
n = R;
for (int i = 0; i < R; i++)
::X[i + 1] = X[i];
pref[0] = 0;
for (int i = 1; i <= R; i++)
{
pref[i] = pref[i - 1] + ::X[i];
}
int answer = 1;
for (int i = 1; i <= n; i++)
{
int l = 1, r = i, ans = 1;
while (l <= r)
{
int mid = (l + r) / 2;
if (f(mid, i) <= B)
{
ans = (i - mid + 1);
r = mid - 1;
}
else
{
l = mid + 1;
}
}
answer = std::max(answer, ans);
}
return answer;
}