https://vjudge.net/problem/UVA-156
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<cctype>
#include<vector>
#include<algorithm>
using namespace std;
struct AA{
string s;
string t;
AA(char c[]){
s=c;
for(int i=0;i<strlen(c);i++)
t+=tolower(c[i]);
sort(t.begin(),t.end());
}
};
bool cmp(AA &a,AA &b){
return a.s<b.s;
}
vector<AA> v;
char c[25];
int main(){
while(scanf("%s",c)){
if(c[0]=='#')break;
v.push_back(AA(c));
}
sort(v.begin(),v.end(),cmp);
int n=v.size();
for(int i=0;i<n;i++){
bool have=false;
for(int j=0;j<n;j++)
if(i!=j&&v[i].t==v[j].t){
have=true;break;
}if(have)continue;
cout<<v[i].s<<endl;
}
}