#include <iostream>
#include <map>
#include <set>
#include <string>
#include <vector>
#include <algorithm>
#include <sstream>
using namespace std;
string itoa(int n)
{
stringstream ss;
ss <<n;
return ss.str();
}
string gen_hash(string s)
{
int count[26];
string hash="";
fill_n(count,26,0);
for (int i = 0; i < s.size(); ++i)
{
++count[s[i]-'a'];
}
for (int i = 0; i < 26; ++i)
{
if(count[i]!=0)
{
hash+=('a'+i);
hash+=itoa(count[i]);
}
}
return hash;
}
int main()
{
int N;
string S;
map<string,set<string> > anagram_group;
set<set<string> > sorted;
cin >> N;
for (int i = 0; i < N; ++i)
{
cin >> S;
anagram_group[gen_hash(S)].insert(S);
}
for (map<string,set<string> >::iterator i = anagram_group.begin(); i != anagram_group.end(); ++i)
{
sorted.insert(i->second);
}
for (set<set<string> >::iterator i = sorted.begin(); i != sorted.end(); ++i)
{
for (set<string>::iterator j = i->begin(); j!= i->end() ; ++j)
{
cout<<*j<<" ";
}
cout<<"\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8c2V0PgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8c3N0cmVhbT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJpbmcgaXRvYShpbnQgbikKewogICAgc3RyaW5nc3RyZWFtIHNzOwoJc3MgPDxuOwoJcmV0dXJuIHNzLnN0cigpOwp9CgpzdHJpbmcgZ2VuX2hhc2goc3RyaW5nIHMpCnsKCWludCBjb3VudFsyNl07CglzdHJpbmcgaGFzaD0iIjsKCWZpbGxfbihjb3VudCwyNiwwKTsKCWZvciAoaW50IGkgPSAwOyBpIDwgcy5zaXplKCk7ICsraSkKCXsKCQkrK2NvdW50W3NbaV0tJ2EnXTsKCX0KCWZvciAoaW50IGkgPSAwOyBpIDwgMjY7ICsraSkKCXsKCQlpZihjb3VudFtpXSE9MCkKCQl7CgkJCWhhc2grPSgnYScraSk7CgkJCWhhc2grPWl0b2EoY291bnRbaV0pOwoJCX0KCX0KCXJldHVybiBoYXNoOwp9CgppbnQgbWFpbigpCnsKCWludCBOOwoJc3RyaW5nIFM7CgltYXA8c3RyaW5nLHNldDxzdHJpbmc+ID4gYW5hZ3JhbV9ncm91cDsKCXNldDxzZXQ8c3RyaW5nPiA+IHNvcnRlZDsKCWNpbiA+PiBOOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBOOyArK2kpCgl7CgkJY2luID4+IFM7CgkJYW5hZ3JhbV9ncm91cFtnZW5faGFzaChTKV0uaW5zZXJ0KFMpOwoJfQoJZm9yIChtYXA8c3RyaW5nLHNldDxzdHJpbmc+ID46Oml0ZXJhdG9yIGkgPSBhbmFncmFtX2dyb3VwLmJlZ2luKCk7IGkgIT0gYW5hZ3JhbV9ncm91cC5lbmQoKTsgKytpKQoJewoJCXNvcnRlZC5pbnNlcnQoaS0+c2Vjb25kKTsKCX0KCWZvciAoc2V0PHNldDxzdHJpbmc+ID46Oml0ZXJhdG9yIGkgPSBzb3J0ZWQuYmVnaW4oKTsgaSAhPSBzb3J0ZWQuZW5kKCk7ICsraSkKCXsKCQlmb3IgKHNldDxzdHJpbmc+OjppdGVyYXRvciBqID0gaS0+YmVnaW4oKTsgaiE9IGktPmVuZCgpIDsgKytqKQoJCXsKCQkJY291dDw8Kmo8PCIgIjsKCQl9CgkJY291dDw8IlxuIjsKCX0KCXJldHVybiAwOwp9