#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int t,n,k,q;
int l[N],s[N*2];
int r,c;
bool dfs(int x,int last,int num){
if(num==r) return last==c?1:0;
for(int i=1;i<=n;i++){
if(i==x) continue;
for(int j=l[i-1]+1;j<=l[i];j++){
if(s[j]==last){
for(int z=j+1;z<=l[i-1]+k&&z<=l[i];z++){
if(dfs(i,s[z],num+1)) return true;
}
}
}
}
return false;
}
int main(){
scanf("%d",&t);
while(t--){
int d;
scanf("%d%d%d",&n,&k,&q);
for(int i=1;i<=n;i++){
scanf("%d",&d);
l[i]=l[i-1]+d;
for(int j=l[i-1]+1;j<=l[i];j++) scanf("%d",&s[j]);
}
while(q--){
scanf("%d%d",&r,&c);
bool flag=false;
for(int i=1;i<=n;i++){
for(int j=l[i-1]+2;j<=l[i]&&j<=l[i-1]+k;j++){
flag=dfs(i,s[j],1);
if(flag) break;
}
if(flag) break;
}
if(flag) printf("1\n");
else printf("0\n");
}
}
return 0;
}