#include <iostream>
#include <string.h>
#include <string>
#include <vector>
#include <cstdio>
#include <map>
#define ll long long
#define MAX_WORD 105
#define INF 100000000
using namespace std;
int min_arr[1000001];
map<string,int> nameErdos;
int minval(string **vb,int i)
{
int v = nameErdos[0]];
for(int j=1;vb[i][j]!="END";j++)
{
v = min(v,nameErdos[j]]);
}
return v;
}
int main()
{
int t,P,N,MN;
int kase=1;
string name="",ss,trash;
char c;
bool coma,found=false;
cin>>t;
while(t--)
{
cin>>P>>N;
int cnt =0;
memset(min_arr,INF,sizeof(min_arr));
nameErdos.clear();
string **vb = new string *[P];
while(cnt!=P)
{
name="";
int index =0;
MN = INF;
coma =0;
found=false;
vb[cnt] = new string[MAX_WORD];
while(cin>>c && c!=':')
{
if(c==',')
{
if(coma==0)
{
coma =1;
name.append(1u,c);
name.append(1u,' ');
continue;
}
if(coma)
{
coma = 0;
vb[cnt][index++]=name;
if(name=="Erdos, P.")
{
nameErdos[name]=1;
MN =1;
found=1;
}
if(nameErdos[name]==0)
{
nameErdos[name]=INF;
}
if(nameErdos[name]<MN)
{
MN = nameErdos[name];
}
name ="";
}
}
else if(c==' ')
continue;
else
name.append(1u,c);
}//2nd while
vb[cnt][index++]=name;
if(name=="Erdos, P.")
{
nameErdos[name]=1;
MN =1;
found=1;
}
if(nameErdos[name]==0)
{
nameErdos[name]=INF;
}
if(nameErdos[name]<MN)
{
MN = nameErdos[name];
}
name ="";
getline(cin,trash);
if(found)
{
for(int i=0;i<index;i++)//vb[cnt].size()
{
nameErdos[i]]= 1;
if(vb[cnt][i]=="Erdos, P.")
nameErdos[i]]= 0;
}
min_arr[cnt]=1;
}
else
{
for(int i=0;i<index;i++)//vb[cnt].size()
{
if(nameErdos[i]]>MN)
nameErdos[i]] = MN+1;
}
min_arr[cnt]=MN;
}
vb[cnt][index]="END";
cnt+=1;
MN = INF;
}//1st while
int Isfinished = 0;
while(!Isfinished)
{
Isfinished =1;
int val;
for(int i=0;i<cnt;i++)
{
val = minval(vb,i);
for(int j=0;;j++)
{
if(vb[i][j]=="END")
break;
if(nameErdos[j]]!=val+1 && nameErdos[j]]!=val)
{
nameErdos[j]] = val+1;
Isfinished = 0;
}
}
}
}
//cout<<"out\n";
bool line=1;
for(int i=0;i<N;i++)
{
getline(cin,ss);
if(line)
cout<<"Scenario "<<kase++<<"\n";
line = false;
if(nameErdos[ss]>=INF)
cout<<ss<<" "<<"infinity\n";
else if(nameErdos[ss]==0 && ss!="Erdos, P.")
cout<<ss<<" "<<"infinity\n";
else
cout<<ss<<" "<<nameErdos[ss]<<"\n";
}
}//t while
return 0;
}