#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char dir[2000][7]={0},sorted[2000][7]={0}; //要求一个单词最多有6个字母,所以数组第二维应该是7,放‘\0‘,所以可以稍微放大点,防止出错
char w[10]={0}; //虽然要求6个,这里养成多写一下点的习惯
int cmp_char(const void* _a,const void* _b)
{
char* a=(char*) _a;
char* b=(char*) _b;
return *a-*b;
}
int cmp_string(const void* _a,const void* _b)
{
char* a=(char*)_a;
char* b=(char*)_b;
return strcmp(a,b);
}
int main(void)
{
int i=0;
while(1)
{
scanf("%s",dir[i]);
if(strcmp(dir[i],"******")==0)
break;
i++;
}
int len=i;
qsort(dir,len,sizeof(dir[0]),cmp_string);
for(i=0;i<len;i++)
{
strcpy(sorted[i],dir[i]);
qsort(sorted[i],strlen(sorted[i]),sizeof(char),cmp_char);
}
while(1)
{
scanf("%s",w);
qsort(w,strlen(w),sizeof(char),cmp_char);
int found=0;//:(的标志
for(i=0;i<len;i++)
{
if(strcmp(w,sorted[i])==0)
{
found=1;
printf("%s ",dir[i]);
}
}
if(!found)
printf(":)");
printf("\n");
}
return 0;
}