#include <bits/stdc++.h>
#define ll long long
#define fast ios_base::sync_with_stdio(0), cin.tie(0);
using namespace std;
const int N = 1005;
ll up[N][12], pa[N], h[N], lg[N];
vector<ll> g[N];
void dfs(ll u){
for(auto v:g[u]){
if(v==pa[u]) continue;
pa[v]=u;
h[v]=h[u]+1;
dfs(v);
}
}
void wow(){
lg[0]=1;
for(int i=1;i<=12;i++)
lg[i]=lg[i-1]*2;
for(int i=1;i<=N;i++)
if(lg[i]==0) lg[i]=lg[i-1];
}
void siu(ll n){
for(int i=1;i<=n;i++) up[i][0]=pa[i];
for(int j=1;j<=17;j++)
for(int i=1;i<=n;i++)
up[i][j]=up[up[i][j-1]][j-1];
}
ll adu(int u, int v) {
if (h[u] != h[v]) {
if (h[u] < h[v]) swap(u, v);
int k = h[u] - h[v];
for (int j = 0; (1 << j) <= k; ++j)
if (k >> j & 1)
u = up[u][j];
}
if (u == v) return u;
int k = lg[h[u]];
for (int j = k; j >= 0; --j)
if (up[u][j] != up[v][j])
u = up[u][j], v = up[v][j];
return up[u][0];
}
int main()
{
fast
wow();
ll t;
cin>>t;
for(int test=1;test<=t;test++){
ll n,m;
cin>>n>>m;
for(int u=1;u<=n;u++){
ll k;
cin>>k;
while(k--){
ll v;
cin>>v;
g[u].push_back(v);
g[v].push_back(u);
}
}
h[1]=0;
dfs(1);
pa[1]=1;
siu(n);
cout<<"Case " <<test<<":"<<"\n";
ll q;
cin>>q;
while(q--){
ll u,v;
cin>>u>>v;
cout<<adu(u,v)<<"\n";
}
for(int i=1;i<=n;i++) g[i].clear();
}
return 0;
}
/*
19
2 2 3
3 8 9 10
5 4 5 11 13 18
2 6 19
0
2 7 16
0
1 12
1 15
1 14
0
0
1 17
0
0
0
0
0
0
12
19 16
10 16
10 11
14 4
12 17
18 1
9 18
14 2
2 12
19 4
17 10
19 7
*/
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgZmFzdCAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCksIGNpbi50aWUoMCk7CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTiA9IDEwMDU7CgpsbCB1cFtOXVsxMl0sIHBhW05dLCBoW05dLCBsZ1tOXTsKdmVjdG9yPGxsPiBnW05dOwoKdm9pZCBkZnMobGwgdSl7CiBmb3IoYXV0byB2OmdbdV0pewogICAgaWYodj09cGFbdV0pIGNvbnRpbnVlOwogICAgcGFbdl09dTsKICAgIGhbdl09aFt1XSsxOwogICAgZGZzKHYpOwogfQp9CnZvaWQgd293KCl7CiAgICBsZ1swXT0xOwogICAgZm9yKGludCBpPTE7aTw9MTI7aSsrKQogICAgICAgIGxnW2ldPWxnW2ktMV0qMjsKCiAgICBmb3IoaW50IGk9MTtpPD1OO2krKykKICAgICBpZihsZ1tpXT09MCkgbGdbaV09bGdbaS0xXTsKfQp2b2lkIHNpdShsbCBuKXsKCgpmb3IoaW50IGk9MTtpPD1uO2krKykgdXBbaV1bMF09cGFbaV07CgogZm9yKGludCBqPTE7ajw9MTc7aisrKQogIGZvcihpbnQgaT0xO2k8PW47aSsrKQogICB1cFtpXVtqXT11cFt1cFtpXVtqLTFdXVtqLTFdOwoKfQoKbGwgYWR1KGludCB1LCBpbnQgdikgewogICAgaWYgKGhbdV0gIT0gaFt2XSkgewogICAgICAgIGlmIChoW3VdIDwgaFt2XSkgc3dhcCh1LCB2KTsKCiAgICAgICAgaW50IGsgPSBoW3VdIC0gaFt2XTsKICAgICAgICBmb3IgKGludCBqID0gMDsgKDEgPDwgaikgPD0gazsgKytqKQogICAgICAgICAgICBpZiAoayA+PiBqICYgMSkKICAgICAgICAgICAgICAgIHUgPSB1cFt1XVtqXTsKICAgIH0KICAgIGlmICh1ID09IHYpIHJldHVybiB1OwoKICAgIGludCBrID0gbGdbaFt1XV07CiAgICBmb3IgKGludCBqID0gazsgaiA+PSAwOyAtLWopCiAgICAgICAgaWYgKHVwW3VdW2pdICE9IHVwW3ZdW2pdKQogICAgICAgICAgICB1ID0gdXBbdV1bal0sIHYgPSB1cFt2XVtqXTsKICAgIHJldHVybiB1cFt1XVswXTsKfQppbnQgbWFpbigpCnsKICBmYXN0CiAgd293KCk7CgogIGxsIHQ7CiAgY2luPj50OwogZm9yKGludCB0ZXN0PTE7dGVzdDw9dDt0ZXN0KyspewogICAgbGwgbixtOwogICAgY2luPj5uPj5tOwogICAgZm9yKGludCB1PTE7dTw9bjt1KyspewogICAgICAgbGwgazsKICAgICAgIGNpbj4+azsKICAgICAgIHdoaWxlKGstLSl7CiAgICAgICAgbGwgdjsKICAgICAgICBjaW4+PnY7CiAgICAgICAgZ1t1XS5wdXNoX2JhY2sodik7CiAgICAgICAgZ1t2XS5wdXNoX2JhY2sodSk7CiAgICAgICB9CiAgICB9CiAgICBoWzFdPTA7CiAgICBkZnMoMSk7CgogICAgcGFbMV09MTsKICAgIHNpdShuKTsKIGNvdXQ8PCJDYXNlICIgPDx0ZXN0PDwiOiI8PCJcbiI7CiAgICBsbCBxOwogICAgY2luPj5xOwogICAgd2hpbGUocS0tKXsKICAgICAgICBsbCB1LHY7CiAgICAgICAgY2luPj51Pj52OwogICAgICAgIGNvdXQ8PGFkdSh1LHYpPDwiXG4iOwogICAgfQogICAgZm9yKGludCBpPTE7aTw9bjtpKyspIGdbaV0uY2xlYXIoKTsKICB9CiAgICByZXR1cm4gMDsKfQovKgoxOQoyIDIgMwozIDggOSAxMAo1IDQgNSAxMSAxMyAxOAoyIDYgMTkKMAoyIDcgMTYKMAoxIDEyCjEgMTUKMSAxNAowCjAKMSAxNwowCjAKMAowCjAKMAoxMgoxOSAxNgoxMCAxNgoxMCAxMQoxNCA0CjEyIDE3CjE4IDEKOSAxOAoxNCAyCjIgMTIKMTkgNAoxNyAxMAoxOSA3CiovCg==