/*
Author : Chandan Agrawal
College : Poornima College of Engg. jaipur, Raj
Mail : chandanagrawal23@gmail.com
" when you are not practicing someone else is ,
and the day u meet them u will lose "
*/
#include<bits/stdc++.h>
#include<stdio.h>
using namespace std;
#define fastio ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define MAX 1050
#define ll long long
#define ld long double
#define lli long long int
#define pb push_back
#define INF 1000000000000
#define mod 1000000007
// trignometric function always give value in Radians only
#define PI acos(-1) //3.1415926535897932384626433832795028
#define dsin(degree) sin(degree*(PI/180.0))
#define dcos(degree) cos(degree*(PI/180.0))
#define dtan(degree) tan(degree*(PI/180.0))
#define rsin(radian) sin(radian)
#define rcos(radian) cos(radian)
#define rtan(radian) tan(radian)
#define mem0(a) memset(a,0,sizeof(a))
#define mem1(a) memset(a,-1,sizeof(a))
#define loop(i,n) for (lli i = 0; i < n; i++)
#define FOR(i,a,b) for (lli i = a; i < b; i+=1)
#define all(v) v.begin(),v.end()
#define rall(v) v.rbegin(),v.rend()
#define sz(x) int(x.size())
#define F first
#define S second
#define mii map<lli,lli>
#define mci map<char,lli>
#define vi vector<lli>
#define vbool vector<bool>
#define seti set<lli>
#define pii pair<lli,lli>
#define pcc pair<char,char>
#define gcd(a,b) __gcd((a),(b))
#define lcm(a,b) (a/gcd(a,b))*b
#define abs(x) ((x < 0)?-(x):x)
#define endl '\n'
template <typename T>
void print(T x){cout<<x<<endl;}
template <typename T1, typename T2>
void print2(T1 x,T2 y){cout<<x<<" "<<y<<endl;}
template <typename T1, typename T2,typename T3>
void print3(T1 x, T2 y,T3 z){cout<<x<<" "<<y<<" "<<z<<endl;}
#define scanarr(a,n) for(lli i=0;i<n;i++) cin>>a[i];
#define scanvec(a,n) for(lli i=0;i<n;i++){ lli x ; cin>>x; a.pb(x);}
#define printarr(a,n) for(lli i=0;i<n;i++) cout<<a[i]<<" "; cout<<endl;
#define printvec(vec) for(auto xt : vec) cout<<xt<<" "; cout<<"\n";
#define FD(N) fixed<<setprecision(N)
#define deb(x) cout<<#x<<" "<<x<<endl;
// chandan1,2
void chandan1(){int y=1;return;}
void chandan2(){
loop(i,10){
lli x=1;
}
return(chandan1());
}
//--------------------------------------------------------------------------------------------------------------------------------------------
// LCA -
#define maxN 21
vi adj[MAX];
vbool vis(MAX,0);
lli level[MAX];
lli LCA[MAX][maxN];
void dfs(lli src , lli lvl , lli parent)
{
level[src] = lvl;
LCA[src][0] = parent;
for(auto child : adj[src])
{
if(child != parent)
dfs(child , lvl+1 , src);
}
}
void preprocess(lli N)
{
dfs(1,0,-1);
for(lli i = 1; i<maxN ; i++)
{
for(lli j = 1 ; j <= N;j++)
{
if(LCA[j][i-1] != -1)
{
lli parent = LCA[j][i-1];
LCA[j][i] = LCA[parent][i-1];
}
}
}
}
lli getLCA(lli a , lli b)
{
if(level[b] < level[a])
swap(a , b);
lli dist = level[b] - level[a];
while(dist)
{
lli i = log2(dist);
b = LCA[b][i];
dist -= (1<<i);
}
if(a == b)
return a;
for(lli i=maxN-1;i>=0;i--)
{
if(LCA[a][i] != -1 and (LCA[a][i] != LCA[b][i]) )
{
a = LCA[a][i];
b = LCA[b][i];
}
}
return LCA[a][0];
}
lli getDistance(lli a , lli b)
{
lli lca = getLCA(a , b);
return (level[a] + level[b] - 2*level[lca]);
}
//--------------------------------------------------------------------------------------------------------------------------------------------
int main(){
fastio
lli t=1;
cin>>t;
chandan2();
loop(qw,t) {
lli n;
cin>>n;
mem1(LCA);
mem0(level);
loop(i,MAX) adj[i].clear();
loop(i,n)
{
lli num;
cin>>num;
while(num--){
lli x;
cin>>x;
adj[i+1].pb(x);
}
}
preprocess(n);
lli q;
cin>>q;
cout<<"Case "<<qw+1<<":\n";
while(q--)
{
lli a , b;
cin>>a>>b;
print(getLCA(a , b));
}
}
return 0;
}
LyoKQXV0aG9yIDogQ2hhbmRhbiBBZ3Jhd2FsCkNvbGxlZ2UgOiBQb29ybmltYSBDb2xsZWdlIG9mIEVuZ2cuIGphaXB1ciwgUmFqCk1haWwgOiBjaGFuZGFuYWdyYXdhbDIzQGdtYWlsLmNvbQogCiIgd2hlbiB5b3UgYXJlIG5vdCBwcmFjdGljaW5nIHNvbWVvbmUgZWxzZSBpcyAsCiBhbmQgdGhlIGRheSB1IG1lZXQgdGhlbSB1IHdpbGwgbG9zZSAiCiAKKi8KI2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2luY2x1ZGU8c3RkaW8uaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAojZGVmaW5lIGZhc3RpbyBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTtjaW4udGllKDApO2NvdXQudGllKDApOwojZGVmaW5lIE1BWCAxMDUwCiAKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBsZCBsb25nIGRvdWJsZQojZGVmaW5lIGxsaSBsb25nIGxvbmcgaW50CiAKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBJTkYgMTAwMDAwMDAwMDAwMAojZGVmaW5lIG1vZCAxMDAwMDAwMDA3CiAKLy8gdHJpZ25vbWV0cmljIGZ1bmN0aW9uIGFsd2F5cyBnaXZlIHZhbHVlIGluIFJhZGlhbnMgb25seQojZGVmaW5lIFBJIGFjb3MoLTEpIC8vMy4xNDE1OTI2NTM1ODk3OTMyMzg0NjI2NDMzODMyNzk1MDI4CiNkZWZpbmUgZHNpbihkZWdyZWUpIHNpbihkZWdyZWUqKFBJLzE4MC4wKSkKI2RlZmluZSBkY29zKGRlZ3JlZSkgY29zKGRlZ3JlZSooUEkvMTgwLjApKQojZGVmaW5lIGR0YW4oZGVncmVlKSB0YW4oZGVncmVlKihQSS8xODAuMCkpCiAKI2RlZmluZSByc2luKHJhZGlhbikgc2luKHJhZGlhbikKI2RlZmluZSByY29zKHJhZGlhbikgY29zKHJhZGlhbikKI2RlZmluZSBydGFuKHJhZGlhbikgdGFuKHJhZGlhbikKIAojZGVmaW5lIG1lbTAoYSkgbWVtc2V0KGEsMCxzaXplb2YoYSkpCiNkZWZpbmUgbWVtMShhKSBtZW1zZXQoYSwtMSxzaXplb2YoYSkpCiAKI2RlZmluZSBsb29wKGksbikgZm9yIChsbGkgaSA9IDA7IGkgPCBuOyBpKyspCiNkZWZpbmUgRk9SKGksYSxiKSBmb3IgKGxsaSBpID0gYTsgaSA8IGI7IGkrPTEpCiAKI2RlZmluZSBhbGwodikgdi5iZWdpbigpLHYuZW5kKCkKI2RlZmluZSByYWxsKHYpIHYucmJlZ2luKCksdi5yZW5kKCkKI2RlZmluZSBzeih4KSBpbnQoeC5zaXplKCkpCiNkZWZpbmUgRiBmaXJzdAojZGVmaW5lIFMgc2Vjb25kCiAKI2RlZmluZSBtaWkgbWFwPGxsaSxsbGk+CiNkZWZpbmUgbWNpIG1hcDxjaGFyLGxsaT4KI2RlZmluZSB2aSB2ZWN0b3I8bGxpPgojZGVmaW5lIHZib29sIHZlY3Rvcjxib29sPgojZGVmaW5lIHNldGkgc2V0PGxsaT4KI2RlZmluZSBwaWkgcGFpcjxsbGksbGxpPgojZGVmaW5lIHBjYyBwYWlyPGNoYXIsY2hhcj4KIAojZGVmaW5lIGdjZChhLGIpIF9fZ2NkKChhKSwoYikpCiNkZWZpbmUgbGNtKGEsYikgKGEvZ2NkKGEsYikpKmIKI2RlZmluZSBhYnMoeCkgKCh4IDwgMCk/LSh4KTp4KQogCiNkZWZpbmUgZW5kbCAnXG4nCiAKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnZvaWQgcHJpbnQoVCB4KXtjb3V0PDx4PDxlbmRsO30KdGVtcGxhdGUgPHR5cGVuYW1lIFQxLCB0eXBlbmFtZSBUMj4Kdm9pZCBwcmludDIoVDEgeCxUMiB5KXtjb3V0PDx4PDwiICI8PHk8PGVuZGw7fQp0ZW1wbGF0ZSA8dHlwZW5hbWUgVDEsIHR5cGVuYW1lIFQyLHR5cGVuYW1lIFQzPgp2b2lkIHByaW50MyhUMSB4LCBUMiB5LFQzIHope2NvdXQ8PHg8PCIgIjw8eTw8IiAiPDx6PDxlbmRsO30KIAojZGVmaW5lIHNjYW5hcnIoYSxuKSBmb3IobGxpIGk9MDtpPG47aSsrKSAgICBjaW4+PmFbaV07CiNkZWZpbmUgc2NhbnZlYyhhLG4pIGZvcihsbGkgaT0wO2k8bjtpKyspeyBsbGkgeCA7IGNpbj4+eDsgYS5wYih4KTt9CiAKI2RlZmluZSBwcmludGFycihhLG4pIGZvcihsbGkgaT0wO2k8bjtpKyspICAgY291dDw8YVtpXTw8IiAiOyBjb3V0PDxlbmRsOwojZGVmaW5lIHByaW50dmVjKHZlYykgZm9yKGF1dG8geHQgOiB2ZWMpIGNvdXQ8PHh0PDwiICI7ICAgIGNvdXQ8PCJcbiI7CiAKI2RlZmluZSBGRChOKSBmaXhlZDw8c2V0cHJlY2lzaW9uKE4pCiAKI2RlZmluZSBkZWIoeCkgY291dDw8I3g8PCIgIjw8eDw8ZW5kbDsKIAovLyBjaGFuZGFuMSwyCnZvaWQgY2hhbmRhbjEoKXtpbnQgeT0xO3JldHVybjt9CnZvaWQgY2hhbmRhbjIoKXsKICAgICAgICBsb29wKGksMTApewogICAgICAgIGxsaSB4PTE7CiAgICB9CiAgICByZXR1cm4oY2hhbmRhbjEoKSk7Cn0KIAovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vIExDQSAtCiNkZWZpbmUgbWF4TiAyMQogCnZpIGFkaltNQVhdOwp2Ym9vbCB2aXMoTUFYLDApOwpsbGkgbGV2ZWxbTUFYXTsKbGxpIExDQVtNQVhdW21heE5dOwogCnZvaWQgZGZzKGxsaSBzcmMgLCBsbGkgbHZsICwgbGxpIHBhcmVudCkKewogICAgbGV2ZWxbc3JjXSA9IGx2bDsKICAgIExDQVtzcmNdWzBdID0gcGFyZW50OwogICAgCiAgICBmb3IoYXV0byBjaGlsZCA6IGFkaltzcmNdKQogICAgewogICAgICAgIGlmKGNoaWxkICE9IHBhcmVudCkKICAgICAgICAgICAgZGZzKGNoaWxkICwgbHZsKzEgLCBzcmMpOwogICAgfQp9CiAKIAp2b2lkIHByZXByb2Nlc3MobGxpIE4pCnsKICAgIGRmcygxLDAsLTEpOwogICAgCiAgICBmb3IobGxpIGkgPSAxOyBpPG1heE4gOyBpKyspCgl7CgkJZm9yKGxsaSBqID0gMSA7IGogPD0gTjtqKyspCgkJewoJCSAgICBpZihMQ0Fbal1baS0xXSAhPSAtMSkKICAgIAkJewogICAgCQkJbGxpIHBhcmVudCA9IExDQVtqXVtpLTFdOwogICAgCQkJTENBW2pdW2ldID0gTENBW3BhcmVudF1baS0xXTsKICAgIAkJfQoJCX0KCX0KfQogCmxsaSBnZXRMQ0EobGxpIGEgLCBsbGkgYikKewoJaWYobGV2ZWxbYl0gPCBsZXZlbFthXSkKCSAgICBzd2FwKGEgLCBiKTsKIAoJbGxpIGRpc3QgPSBsZXZlbFtiXSAtIGxldmVsW2FdOwogCgl3aGlsZShkaXN0KQoJewoJCWxsaSBpID0gbG9nMihkaXN0KTsKCQkKCQliID0gTENBW2JdW2ldOwogCgkJZGlzdCAtPSAoMTw8aSk7Cgl9CiAKCWlmKGEgPT0gYikKCSAgICByZXR1cm4gYTsKCQoJZm9yKGxsaSBpPW1heE4tMTtpPj0wO2ktLSkKCXsKCSAgICBpZihMQ0FbYV1baV0gIT0gLTEgYW5kIChMQ0FbYV1baV0gIT0gTENBW2JdW2ldKSApCgkgICAgewoJICAgICAgICBhID0gTENBW2FdW2ldOwoJICAgICAgICBiID0gTENBW2JdW2ldOwoJICAgIH0KCX0KCQoJcmV0dXJuIExDQVthXVswXTsKfQogCmxsaSBnZXREaXN0YW5jZShsbGkgYSAsIGxsaSBiKQp7CglsbGkgbGNhID0gZ2V0TENBKGEgLCBiKTsKCQoJcmV0dXJuIChsZXZlbFthXSArIGxldmVsW2JdIC0gMipsZXZlbFtsY2FdKTsKfQogCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogCmludCBtYWluKCl7CmZhc3RpbwpsbGkgdD0xOwpjaW4+PnQ7CmNoYW5kYW4yKCk7Cmxvb3AocXcsdCkgewogICAgbGxpIG47CiAgICBjaW4+Pm47CiAgICAKICAgIG1lbTEoTENBKTsKICAgIG1lbTAobGV2ZWwpOwogICAgbG9vcChpLE1BWCkgYWRqW2ldLmNsZWFyKCk7CiAgICAKICAgIGxvb3AoaSxuKQogICAgewogICAgICAgIGxsaSBudW07CiAgICAgICAgY2luPj5udW07CiAgICAgICAgd2hpbGUobnVtLS0pewogICAgICAgICAgICBsbGkgeDsKICAgICAgICAgICAgY2luPj54OwogICAgICAgICAgICBhZGpbaSsxXS5wYih4KTsKICAgICAgICB9CiAgICB9CiAgICAKICAgIHByZXByb2Nlc3Mobik7CiAgICAKICAgIGxsaSBxOwogICAgY2luPj5xOwogICAgY291dDw8IkNhc2UgIjw8cXcrMTw8IjpcbiI7CiAgICAKICAgIHdoaWxlKHEtLSkKICAgIHsKICAgICAgICAKICAgICAgICBsbGkgYSAsIGI7CiAgICAgICAgY2luPj5hPj5iOwogICAgICAgIAogICAgICAgIHByaW50KGdldExDQShhICwgYikpOwogICAgICAgIAogICAgfQogCiAKICB9CnJldHVybiAwOwp9