/*一次ac,得益于函数的调用*/
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#include<string.h>
char word[300][25],sorted[300][25],s1[25],s2[25];
int found[300];
int cmp_str(const void *a,const void *b)
{
return strcmp((char *)a,(char *)b);
}
int cmp_char(const void *a,const void *b)
{
return *((char*)a)-*((char*)b);
}
int main()
{
int i,j,n=0;
while(scanf("%s",word[n++])!=EOF&&word[n-1][0]!='#');
n--;
qsort(word,n,sizeof(word[0]),cmp_str);
for(i=0;i<n;i++)
{
strcpy(sorted[i],word[i]);
for(j=0;word[i][j]!='\0';j++)
if(isupper(sorted[i][j]))
sorted[i][j]=tolower(sorted[i][j]);
}
memset(found,0,sizeof(int)*n);
for(i=0;i<n;i++)
{
if(found[i]==0)
{
sprintf(s1,"%s",sorted[i]);
qsort(s1,strlen(s1),sizeof(char),cmp_char);
for(j=0;j<n;j++)
{
sprintf(s2,"%s",sorted[j]);
qsort(s2,strlen(s2),sizeof(char),cmp_char);
if(i!=j&&strcmp(s1,s2)==0)
{
found[i]=1;
found[j]=1;
}
}
if(found[i]==0)
printf("%s\n",word[i]);
}
}
return 0;
}