#include<bits/stdc++.h>
using namespace std;
const int N=514191;
int T,n,m,k;
long long p[N],a[N],b[N];
void merge(int l,int r,int mid){
int i=l,j=mid+1,t;
for(t=l;t<=r;++t)
if(j>r||i<=mid&&a[i]<=a[j]) b[t]=a[i++];
else b[t]=a[j++];
}
bool check(int l,int r,int mid){
if(r>n) r=n;
for(int i=mid+1;i<=r;++i) a[i]=p[i];
sort(a+mid+1,a+r+1);
merge(l,r,mid);
long long ans=0;
for(int i=0;i<min(m,r-l+1>>1);++i)
ans+=(b[r-i]-b[l+i])*(b[r-i]-b[l+i]);
if(ans>k) return false;
for(int i=l;i<=r;++i) a[i]=b[i];
return true;
}
int main(){
scanf("%d",&T);
while(T--){
scanf("%d%d%d",&n,&m,&k);
for(int i=1;i<=n;++i)
scanf("%lld",p+i);
int res=0,l=1,r=1,t=1;
a[l]=p[l];
while(r<=n){
while(t){
if(check(l,r+t,r)){
r=min(r+t,n);
t<<=1;
}
else t>>=1;
}
l=++r; t=1; res++;
}
printf("%d\n",res);
}
return 0;
}