#include<bits/stdc++.h>
using namespace std;
int dp[1001][10];
int level[1001];
void dynamic(int,int,int,vector<int>*);
int lca(int,int,int);
int main()
{
int tc,n,m,q,v,w,i,j,k,temp;
cin>>tc;
for(i=0;i<tc;i++){
cin>>n;
vector<int> vec[n+1];
for(j=1;j<=n;j++){
cin>>m;
for(k=0;k<m;k++){
cin>>temp;
vec[j].push_back(temp);
vec[temp].push_back(j);
}
}
int log=ceil(log2(n));
level[1]=0;
dynamic(log,1,1,vec);
cin>>q;
cout<<"Case "<<i+1<<":"<<endl;
for(j=0;j<q;j++){
cin>>v>>w;
cout<<lca(v,w,log)<<endl;
}
}
}
void dynamic(int log,int u,int parent,vector<int>*vec)
{
dp[u][0]=parent;
for(int i=1;i<=log;i++)
dp[u][i]=dp[dp[u][i-1]][i-1];
vector<int>::iterator it;
for(it=vec[u].begin();it!=vec[u].end();it++){
if(*it!=parent){
level[*it]=level[u]+1;
dynamic(log,*it,u,vec);
}
}
}
int lca(int u,int v,int log)
{
if(level[u]<level[v])
swap(u,v);
for(int i=log; i>=0; i--)
if(level[u]-pow(2,i)>=level[v])
u=dp[u][i];
if(u==v)
return u;
for(int i=log;i>=0;i--){
if(dp[u][i]!=dp[v][i]){
u=dp[u][i];
v=dp[v][i];
}
}
return dp[u][0];
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IGRwWzEwMDFdWzEwXTsKaW50IGxldmVsWzEwMDFdOwp2b2lkIGR5bmFtaWMoaW50LGludCxpbnQsdmVjdG9yPGludD4qKTsKaW50IGxjYShpbnQsaW50LGludCk7CmludCBtYWluKCkKewogICAgaW50IHRjLG4sbSxxLHYsdyxpLGosayx0ZW1wOwogICAgY2luPj50YzsKICAgIGZvcihpPTA7aTx0YztpKyspewogICAgICAgIGNpbj4+bjsKICAgICAgICB2ZWN0b3I8aW50PiB2ZWNbbisxXTsKICAgICAgICBmb3Ioaj0xO2o8PW47aisrKXsKICAgICAgICAgICAgY2luPj5tOwogICAgICAgICAgICBmb3Ioaz0wO2s8bTtrKyspewogICAgICAgICAgICAgICAgY2luPj50ZW1wOwogICAgICAgICAgICAgICAgdmVjW2pdLnB1c2hfYmFjayh0ZW1wKTsKICAgICAgICAgICAgICAgIHZlY1t0ZW1wXS5wdXNoX2JhY2soaik7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaW50IGxvZz1jZWlsKGxvZzIobikpOwogICAgICAgIGxldmVsWzFdPTA7CiAgICAgICAgZHluYW1pYyhsb2csMSwxLHZlYyk7CiAgICAgICAgY2luPj5xOwogICAgICAgIGNvdXQ8PCJDYXNlICI8PGkrMTw8IjoiPDxlbmRsOwogICAgICAgIGZvcihqPTA7ajxxO2orKyl7CiAgICAgICAgICAgIGNpbj4+dj4+dzsKICAgICAgICAgICAgY291dDw8bGNhKHYsdyxsb2cpPDxlbmRsOwogICAgICAgIH0KICAgIH0KfQp2b2lkIGR5bmFtaWMoaW50IGxvZyxpbnQgdSxpbnQgcGFyZW50LHZlY3RvcjxpbnQ+KnZlYykKewogICAgZHBbdV1bMF09cGFyZW50OwogICAgZm9yKGludCBpPTE7aTw9bG9nO2krKykKICAgICAgICBkcFt1XVtpXT1kcFtkcFt1XVtpLTFdXVtpLTFdOwoKICAgIHZlY3RvcjxpbnQ+OjppdGVyYXRvciBpdDsKICAgIGZvcihpdD12ZWNbdV0uYmVnaW4oKTtpdCE9dmVjW3VdLmVuZCgpO2l0KyspewogICAgICAgIGlmKCppdCE9cGFyZW50KXsKICAgICAgICAgICAgbGV2ZWxbKml0XT1sZXZlbFt1XSsxOwogICAgICAgICAgICBkeW5hbWljKGxvZywqaXQsdSx2ZWMpOwogICAgICAgIH0KICAgIH0KfQppbnQgbGNhKGludCB1LGludCB2LGludCBsb2cpCnsKICAgIGlmKGxldmVsW3VdPGxldmVsW3ZdKQogICAgICAgIHN3YXAodSx2KTsKICAgIGZvcihpbnQgaT1sb2c7IGk+PTA7IGktLSkKICAgICAgICBpZihsZXZlbFt1XS1wb3coMixpKT49bGV2ZWxbdl0pCiAgICAgICAgICAgIHU9ZHBbdV1baV07CiAgICBpZih1PT12KQogICAgICAgIHJldHVybiB1OwogICAgZm9yKGludCBpPWxvZztpPj0wO2ktLSl7CiAgICAgICAgaWYoZHBbdV1baV0hPWRwW3ZdW2ldKXsKICAgICAgICAgICAgdT1kcFt1XVtpXTsKICAgICAgICAgICAgdj1kcFt2XVtpXTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gZHBbdV1bMF07Cn0K