#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#include <fstream>
#include <string>
#include <string.h>
using namespace std;
int N,L,i,Mid,f1,f2,CurrentSizeLimit,Ans,iter,R;
long long Budget;
int X[100005];
long long presums[100005];
long long BudgetQueryLeft(int where,int howmany) {
return 1LL*howmany*X[where]-(presums[where]-presums[where-howmany]);
}
long long BudgetQueryRight(int where,int howmany) {
return (presums[where+howmany-1]-presums[where-1])-1LL*howmany*X[where-1];
}
int FindRightCount(int where,long long budget) {
int Ret=0,L=1,R=N-where+1,Mid,iter;
for (iter=0;iter<17;iter++) {
Mid=(L+R)>>1;
if (BudgetQueryRight(where,Mid)<=budget) {
Ret=max(Ret,Mid);
L=Mid+1;
} else R=Mid;
}
return Ret;
}
int main() {
//freopen("input.txt","r",stdin);
scanf("%d%d%lld", &N,&L,&Budget);
for (i=1;i<=N;i++) {
scanf("%d", &X[i]);
presums[i]=presums[i-1]+X[i];
}
CurrentSizeLimit=0;
for (i=1;i<=N;i++) {
CurrentSizeLimit++;
while (BudgetQueryLeft(i,CurrentSizeLimit)>Budget) CurrentSizeLimit--;
L=1; R=CurrentSizeLimit;
for (iter=0;iter<17;iter++) {
Mid=(L+R)>>1;
f1=FindRightCount(i+1,Budget-BudgetQueryLeft(i,Mid));
Ans=max(Ans,Mid+f1);
if (Mid<R) {
f2=FindRightCount(i+1,Budget-BudgetQueryLeft(i,Mid+1));
Ans=max(Ans,Mid+1+f2);
if (Mid+f1<Mid+1+f2)
L=Mid;
else
R=Mid;
}
}
}
printf("%d\n",Ans);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHN0cmluZy5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBOLEwsaSxNaWQsZjEsZjIsQ3VycmVudFNpemVMaW1pdCxBbnMsaXRlcixSOwpsb25nIGxvbmcgQnVkZ2V0OwppbnQgWFsxMDAwMDVdOwpsb25nIGxvbmcgcHJlc3Vtc1sxMDAwMDVdOwoKbG9uZyBsb25nIEJ1ZGdldFF1ZXJ5TGVmdChpbnQgd2hlcmUsaW50IGhvd21hbnkpIHsKCXJldHVybiAxTEwqaG93bWFueSpYW3doZXJlXS0ocHJlc3Vtc1t3aGVyZV0tcHJlc3Vtc1t3aGVyZS1ob3dtYW55XSk7Cn0KCmxvbmcgbG9uZyBCdWRnZXRRdWVyeVJpZ2h0KGludCB3aGVyZSxpbnQgaG93bWFueSkgewoJcmV0dXJuIChwcmVzdW1zW3doZXJlK2hvd21hbnktMV0tcHJlc3Vtc1t3aGVyZS0xXSktMUxMKmhvd21hbnkqWFt3aGVyZS0xXTsKfQoKaW50IEZpbmRSaWdodENvdW50KGludCB3aGVyZSxsb25nIGxvbmcgYnVkZ2V0KSB7CglpbnQgUmV0PTAsTD0xLFI9Ti13aGVyZSsxLE1pZCxpdGVyOwoJZm9yIChpdGVyPTA7aXRlcjwxNztpdGVyKyspIHsKCQlNaWQ9KEwrUik+PjE7CgkJaWYgKEJ1ZGdldFF1ZXJ5UmlnaHQod2hlcmUsTWlkKTw9YnVkZ2V0KSB7CgkJCVJldD1tYXgoUmV0LE1pZCk7CgkJCUw9TWlkKzE7CgkJfSBlbHNlIFI9TWlkOwoJfQoJcmV0dXJuIFJldDsKfQkKCgppbnQgbWFpbigpIHsKCS8vZnJlb3BlbigiaW5wdXQudHh0IiwiciIsc3RkaW4pOwoKCXNjYW5mKCIlZCVkJWxsZCIsICZOLCZMLCZCdWRnZXQpOwoJZm9yIChpPTE7aTw9TjtpKyspIHsKCQlzY2FuZigiJWQiLCAmWFtpXSk7CgkJcHJlc3Vtc1tpXT1wcmVzdW1zW2ktMV0rWFtpXTsKCX0KCglDdXJyZW50U2l6ZUxpbWl0PTA7CgoJZm9yIChpPTE7aTw9TjtpKyspIHsKCQlDdXJyZW50U2l6ZUxpbWl0Kys7CgkJd2hpbGUgKEJ1ZGdldFF1ZXJ5TGVmdChpLEN1cnJlbnRTaXplTGltaXQpPkJ1ZGdldCkgQ3VycmVudFNpemVMaW1pdC0tOwoJCUw9MTsgUj1DdXJyZW50U2l6ZUxpbWl0OwoJCWZvciAoaXRlcj0wO2l0ZXI8MTc7aXRlcisrKSB7CgkJCU1pZD0oTCtSKT4+MTsKCQkJZjE9RmluZFJpZ2h0Q291bnQoaSsxLEJ1ZGdldC1CdWRnZXRRdWVyeUxlZnQoaSxNaWQpKTsKCQkJQW5zPW1heChBbnMsTWlkK2YxKTsKCQkJaWYgKE1pZDxSKSB7CgkJCQlmMj1GaW5kUmlnaHRDb3VudChpKzEsQnVkZ2V0LUJ1ZGdldFF1ZXJ5TGVmdChpLE1pZCsxKSk7CgkJCQlBbnM9bWF4KEFucyxNaWQrMStmMik7CgkJCQlpZiAoTWlkK2YxPE1pZCsxK2YyKQoJCQkJCUw9TWlkOwoJCQkJZWxzZQoJCQkJCVI9TWlkOwoJCQl9CgkJfQoJfQoKCXByaW50ZigiJWRcbiIsQW5zKTsKCglyZXR1cm4gMDsKfQ==