#include <iostream>
#include <vector>
#include <cstring>
#include <queue>
#include <cstdio>
using namespace std;
//英语 看博友分析 bfs实现 spfa floyd 没实现
int jg[30][30];
int dis[30];
int main()
{
int tag=0;
while(1)
{
tag++;
vector<int> G[30];//
memset(jg,0,sizeof(jg));
for(int u=1;u<20;u++)
{
int n;
cin>>n;
if(cin.eof()==1)
{
return 0;
}
for(int i=0;i<n;i++)
{
int v;
cin>>v;
G[v].push_back(u);
G[u].push_back(v);
}
}
for(int u=1;u<=20;u++)
{
memset(dis,-1,sizeof(dis));
queue<int> que;
dis[u]=0;
que.push(u);
while(que.empty()!=1)
{
int tu=que.front();
que.pop();
for(int i=0;i<G[tu].size();i++)
{
int tv=G[tu][i];
if(dis[tv]==-1 || dis[tv]>(dis[tu]+1))
{
dis[tv]=dis[tu]+1;
que.push(tv);
}
}
}
for(int j=1;j<=20;j++)
{
jg[u][j]=dis[j];
}
}
int n;
cin>>n;
cout<<"Test Set #"<<tag<<endl;
for(int i=0;i<n;i++)
{
int x,y;
cin>>x>>y;
cout<<x<<" to "<<y<<": "<<jg[x][y]<<endl;
}
cout<<endl;//抄博友程序
}
return 0;
}