#include<cstdio>
#include<iostream>
#include<vector>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
vector<vector<string> > res;
bool isAnagram(string s1,string s2){
int A[30];
memset(A,0,sizeof(A));
int size1=s1.size();
int size2=s2.size();
if(size1!=size2) return false;
for(int i=0;i<size1;i++){ A[s1[i]-'a']++; A[s2[i]-'a']--;}
for(int i=0;i<30;i++) if(A[i]!=0) return false;
return true;
}
int main(){
int n;
scanf("%d",&n);
vector<string> V;
string str;
for(int i=0;i<n;i++){ cin>>str; V.push_back(str);}
bool taken[n];
memset(taken,false,sizeof(taken));
int k=0;
for(int i=0;i<n;i++){
if(taken[i]) continue;
taken[i]=true;
res[k].push_back(V[i]);
for(int j=0;j<n;j++){
if(i==j) continue;
if(taken[j]) continue;
if(isAnagram(V[i],V[j])){ res[k].push_back(V[j]); taken[j]=true;}
}
++k;
}
int r=res.size();
for(int i=0;i<r;i++) sort(res[i].begin(),res[i].end());
sort(res.begin(),res.end());
for(int i=0;i<r;i++){
for(int j=0;j<res[i].size();j++) cout<<res[i][j]<<" ";
cout<<"\n";
}
return 0;
}
I2luY2x1ZGU8Y3N0ZGlvPgojaW5jbHVkZTxpb3N0cmVhbT4KI2luY2x1ZGU8dmVjdG9yPgojaW5jbHVkZTxjc3RyaW5nPgojaW5jbHVkZTxzdHJpbmc+CiNpbmNsdWRlPGFsZ29yaXRobT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZlY3Rvcjx2ZWN0b3I8c3RyaW5nPiA+IHJlczsKCmJvb2wgaXNBbmFncmFtKHN0cmluZyBzMSxzdHJpbmcgczIpewogICAgaW50IEFbMzBdOwoJbWVtc2V0KEEsMCxzaXplb2YoQSkpOwoJaW50IHNpemUxPXMxLnNpemUoKTsKCWludCBzaXplMj1zMi5zaXplKCk7CglpZihzaXplMSE9c2l6ZTIpIHJldHVybiBmYWxzZTsKCWZvcihpbnQgaT0wO2k8c2l6ZTE7aSsrKXsgQVtzMVtpXS0nYSddKys7IEFbczJbaV0tJ2EnXS0tO30KCWZvcihpbnQgaT0wO2k8MzA7aSsrKSBpZihBW2ldIT0wKSByZXR1cm4gZmFsc2U7CglyZXR1cm4gdHJ1ZTsKfQoKaW50IG1haW4oKXsKCWludCBuOwoJc2NhbmYoIiVkIiwmbik7Cgl2ZWN0b3I8c3RyaW5nPiBWOwoJc3RyaW5nIHN0cjsKCWZvcihpbnQgaT0wO2k8bjtpKyspeyBjaW4+PnN0cjsgVi5wdXNoX2JhY2soc3RyKTt9Cglib29sIHRha2VuW25dOwoJbWVtc2V0KHRha2VuLGZhbHNlLHNpemVvZih0YWtlbikpOwoJaW50IGs9MDsKCWZvcihpbnQgaT0wO2k8bjtpKyspewoJCWlmKHRha2VuW2ldKSBjb250aW51ZTsKCQl0YWtlbltpXT10cnVlOwoJCXJlc1trXS5wdXNoX2JhY2soVltpXSk7CgkJZm9yKGludCBqPTA7ajxuO2orKyl7CgkJCWlmKGk9PWopIGNvbnRpbnVlOwoJCQlpZih0YWtlbltqXSkgY29udGludWU7CgkJCWlmKGlzQW5hZ3JhbShWW2ldLFZbal0pKXsgcmVzW2tdLnB1c2hfYmFjayhWW2pdKTsgdGFrZW5bal09dHJ1ZTt9CgkJfQoJCSsrazsKCX0KCWludCByPXJlcy5zaXplKCk7Cglmb3IoaW50IGk9MDtpPHI7aSsrKSBzb3J0KHJlc1tpXS5iZWdpbigpLHJlc1tpXS5lbmQoKSk7Cglzb3J0KHJlcy5iZWdpbigpLHJlcy5lbmQoKSk7Cglmb3IoaW50IGk9MDtpPHI7aSsrKXsKCQlmb3IoaW50IGo9MDtqPHJlc1tpXS5zaXplKCk7aisrKSBjb3V0PDxyZXNbaV1bal08PCIgIjsKCQljb3V0PDwiXG4iOwoJfQoJcmV0dXJuIDA7Cn0=