#include<bits/stdc++.h>
using namespace std;
string restr(string s){
sort(s.begin(),s.end());
return s;
}
int main() {
int n;
while(cin>>n) {
if(n==0)
break;
int data[n];
for(int i=0; i<n; i++) {
cin>>data[i];
}
sort(data,data+n);
string str[n];
for(int i=0; i<n; i++) {
string temp=to_string(data[i]);
str[i]=restr(temp);
}
for(int i=0; i<n; i++) {
if(data[i]==-1)
continue;
string temp=to_string(data[i]);
temp=restr(temp);
for(int j=0; j<n; j++) {
if(temp==str[j] and j!=i){
data[i]=-1;
}
}
}
bool flag=true;
for(int i=0; i<n; i++) {
if(data[i]!=-1) {
cout<<data[i]<<" ";
flag=false;
}
}
if(flag)
cout<<"None";
cout<<endl;
}
return 0;
}
/*网上版本*/
#include<bits/stdc++.h>
using namespace std;
map<string, int> cnt;
vector<string> w;
string repr(string s){
sort(s.begin(),s.end());
return s;
}
int main()
{
int N;
while(cin>>N,N){
string s;
while(N--){
cin >> s;
w.push_back(s); //将数据存入数组w
string r = repr(s); // 排下数字的顺序
if(!cnt.count(r))
cnt[r] = 0;
cnt[r]++;
}
vector<string> ans;
int k = w.size();
for(int i = 0; i < k; i++)
if(cnt[repr(w[i])] == 1)
ans.push_back(w[i]);
sort(ans.begin(), ans.end());
k = ans.size();
if(k == 0)//判断ans数组是否为空
cout<<"None"<<endl;
else{
//按要求输出
cout << ans[0];
for(int i = 1; i < k; i++)
cout << " " << ans[i];
cout << endl;
}
ans.clear(); //数组和关联容器清空
w.clear();
}
return 0;
}