#include<bits/stdc++.h>
using namespace std;
const int N=2e5+5,M=100;
int f[M+5][N],g[M+5][N],h[M+5][N],a[N],l[N],r[N],last[N];
int tmp;
int main(){
int T;
cin>>T;
while(T--){
int n,k,q,s;
cin>>n>>k>>q;
for(int i=1;i<=n;i++){
cin>>s;
l[i]=r[i-1]+1;
r[i]=r[i-1]+s;
for(int j=l[i];j<=r[i];j++)cin>>a[i];
}
memset(g,0,sizeof(g));
g[0][1]=1;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
int L=l[j],cnt=0;
f[i][L]=0;
for(int t=l[j]+1;t<=r[j];t++){
if(t-L+1>k){
cnt-=g[i-1][a[L]]-f[i-1][L];
L++;
}
cnt+=g[i-1][a[t-1]]-f[i-1][t-1];
f[i][t]=cnt?1:0;
g[i][a[t]]+=f[i][t];
}
for(int t=l[j];t<=r[j];t++){
if(last[a[t]])f[i][t]+=f[i][last[a[t]]];
last[a[t]]=t;
}
for(int t=l[j];t<=r[j];t++){
last[a[t]]=0;
}
for(int t=r[j];t>=l[j];t--){
if(last[a[t]])f[i][t]=f[i][last[a[t]]];
last[a[t]]=t;
}
for(int t=l[j];t<=r[j];t++)last[a[t]]=0;
}
int x,y;
while(q-->0){
tmp++;
cin>>x>>y;
cout<<(g[x][y]?1:0)<<endl;
}
}
}
return 0;
}