#include<stdio.h>
#include<string.h>
char word[105],num[105],ans[105],it[105];
int times,flag;
int phone[8][4]={{0,1,2},{3,4,5},{6,7,8},{9,10,11},{12,13,14},{15,16,17,18},{19,20,21},{22,23,24,25}};
int ch[8]={3,3,3,3,3,4,3,4};
struct tree
{
tree *next[30];
int time;
tree()
{
for(int i=0;i<30;i++)
{
next[i]=NULL;
}
time=0;
}
}*root;
void set(char *s,int t)
{
tree *item=root;
for(int i=0;word[i]!=NULL;i++)
{
int j=s[i]-'a';
if(item->next[j]==NULL)
{
item->next[j]=new tree;
}
item=item->next[j];
item->time+=t;
}
}
void dfs(tree *item,int now,int len)
{
if(len==now)
{
if(flag<item->time)
{
flag=item->time;
for(int i=0;i<len;i++)
{
ans[i]=it[i];
}
ans[len]=0;
}
return ;
}
int t=num[now]-'2';
for(int i=0;i<ch[t];i++)
{
int le=phone[t][i];
if(item->next[le]!=NULL)
{
it[now]='a'+le;
dfs(item->next[le],now+1,len);
}
}
return;
}
int main()
{
int t,m,n;
scanf("%d",&t);
for(int i=1;i<=t;i++)
{
printf("Scenario #%d:\n",i);
scanf("%d",&n);
root=new tree;
while(n--)
{
scanf("%s%d",word,×);
set(word,times);
}
scanf("%d",&m);
while(m--)
{
scanf("%s",num);
int t=strlen(num);
for(int i=1;i<t;i++)
{
flag=0;
dfs(root,0,i);
if(flag>0)
{
puts(ans);
}
else
{
puts("MANUALLY");
}
}
if(m!=0)
{
puts("");
}
}
puts("");
puts("");
}
}