//toj2033 floyd
#include<iostream>
#define MAX 21
using namespace std;
int i,j;
int main()
{
int t=1,m,n,i,j,k;
int map[MAX][MAX];
while(cin>>n)
{
for(i=1;i<=20;i++)
for(j=1;j<=20;j++)
map[i][j]=19; //init
while(n--)
{
cin>>m;
map[1][m]=map[m][1]=1;
}
for(i=2;i<20;i++)//第二个之后的
{
cin>>n;
while(n--)
{
cin>>m;
map[i][m]=map[m][i]=1;
}
}
for(k=1; k<=20; k++) // Floyd算法核心代码。
for(i=1; i<=20; i++)
for(j=1; j<=20; j++)
if(map[i][k] + map[k][j] < map[i][j])
map[i][j] = map[i][k] + map[k][j];
cin>>n;
cout << "Test Set #" << t++ << endl;
while(n--){
cin >> i >> j;
cout << i << " to " << j << ": " << map[i][j] << endl;
}
cout << endl; // 输出格式要注意。
}
return 0;
}