#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#define MAX 10005
typedef struct node
{
char a[16];
int len;
}node;
node te,t[MAX];
int n=0;
void pp(node T)
{
int N[10005];
int p=0;
int i,j,k;
int now;
for(now=0;now<n;now++)//从now节点开始匹配
{
//模糊匹配
int count=0;
if(t[now].len==T.len)
{
for(i=0;i<T.len;i++)
{
if(t[now].a[i]!=T.a[i])
count++;
if(count>1)
break;
}
if(count==0)
{
printf("%s is correct\n",T.a);
return;
}
}
else if(t[now].len==T.len+1)//字典比带匹配串长
{
for(j=0,k=0;j<t[now].len;j++,k++)
{
if(T.a[j]!=t[now].a[k])
{
j--;
count++;
if(count>1)
break;
}
}
}
else if(t[now].len==T.len-1)//字典比待匹配串短
{
for(j=0,k=0;j<T.len;j++,k++)
{
if(t[now].a[j]!=T.a[k])
{
j--;
count++;
if(count>1)
break;
}
}
}
if(count==1)
N[p++]=now;//记录字典的位置
}
printf("%s:",T.a);
for(j=0;j<p;j++)
printf(" %s",t[N[j]].a);
printf("\n");
}
int main()
{
while(~scanf("%s",t[n].a))
{
if(t[n].a[0]=='#')
break;
t[n].len=strlen(t[n].a);
n++;
}
while(~scanf("%s",te.a))
{
if(te.a[0]=='#')
break;
te.len=strlen(te.a);
pp(te);
}
return 0;
}