#include<bits/stdc++.h>
using namespace std;
long long n;
vector<string>v;
vector<string>giamdan;
multiset<string>se;
bool ss(string a,string b)
{
return (a.length()<b.length() || (a.length()==b.length() && a<b));
}
map<string,long long>mp;
bool ss2(string a,string b)
{
return (mp[a]>mp[b] || (mp[a]==mp[b] && a<b));
}
int main()
{
cin>>n;
cin.ignore();
for(int i=0;i<n;i++)
{
string s;
cin>>s;
mp[s]++;
v.push_back(s);
se.insert(s);
}
//yeucau1
for(string x : se)
{
cout<<x<<" ";
giamdan.push_back(x);
}
cout<<endl;
//yeucau2
reverse(giamdan.begin(),giamdan.end());
for(string x : giamdan) cout<<x<<" ";
cout<<endl;
//yeucau3
sort(v.begin(),v.end(),ss);
for(string x : v) cout<<x<<" ";
cout<<endl;
//yeucau4
sort(v.begin(),v.end(),ss2);
for(string x : v) cout<<x<<" ";
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKbG9uZyBsb25nIG47CnZlY3RvcjxzdHJpbmc+djsKdmVjdG9yPHN0cmluZz5naWFtZGFuOwptdWx0aXNldDxzdHJpbmc+c2U7CmJvb2wgc3Moc3RyaW5nIGEsc3RyaW5nIGIpCnsKICAgIHJldHVybiAoYS5sZW5ndGgoKTxiLmxlbmd0aCgpIHx8IChhLmxlbmd0aCgpPT1iLmxlbmd0aCgpICYmIGE8YikpOwp9Cm1hcDxzdHJpbmcsbG9uZyBsb25nPm1wOwpib29sIHNzMihzdHJpbmcgYSxzdHJpbmcgYikKewogICAgcmV0dXJuIChtcFthXT5tcFtiXSB8fCAobXBbYV09PW1wW2JdICYmIGE8YikpOwp9CmludCBtYWluKCkKewogICAgY2luPj5uOwogICAgY2luLmlnbm9yZSgpOwogICAgZm9yKGludCBpPTA7aTxuO2krKykKICAgIHsKICAgICAgICBzdHJpbmcgczsKICAgICAgICBjaW4+PnM7CiAgICAgICAgbXBbc10rKzsKICAgICAgICB2LnB1c2hfYmFjayhzKTsKICAgICAgICBzZS5pbnNlcnQocyk7CiAgICB9CiAgICAvL3lldWNhdTEKICAgIGZvcihzdHJpbmcgeCA6IHNlKQogICAgewogICAgICAgIGNvdXQ8PHg8PCIgIjsKICAgICAgICBnaWFtZGFuLnB1c2hfYmFjayh4KTsKICAgIH0KICAgIGNvdXQ8PGVuZGw7CiAgICAvL3lldWNhdTIKICAgIHJldmVyc2UoZ2lhbWRhbi5iZWdpbigpLGdpYW1kYW4uZW5kKCkpOwogICAgZm9yKHN0cmluZyB4IDogZ2lhbWRhbikgY291dDw8eDw8IiAiOwogICAgY291dDw8ZW5kbDsKICAgIC8veWV1Y2F1MwogICAgc29ydCh2LmJlZ2luKCksdi5lbmQoKSxzcyk7CiAgICBmb3Ioc3RyaW5nIHggOiB2KSBjb3V0PDx4PDwiICI7CiAgICBjb3V0PDxlbmRsOwogICAgLy95ZXVjYXU0CiAgICBzb3J0KHYuYmVnaW4oKSx2LmVuZCgpLHNzMik7CiAgICBmb3Ioc3RyaW5nIHggOiB2KSBjb3V0PDx4PDwiICI7Cgp9Cg==