#include <stdio.h>
#include <algorithm>
#include <string>
#include <iostream>
#include <cstring>
#include <vector>
using namespace std;
/*namespace std {
bool operator<(const string &s1, const string &s2){
return s1.at(s1.size() - 1) < s2.at(s2.size() - 1);
}
}*/
int main(){
vector <string> nameList;
int n;
cin>>n;
while(n--){
string name;
char str[100];
cin>>str;
name += str;
nameList.push_back(name);
}
sort(nameList.begin(), nameList.end(), [] (const string &s1, const string &s2){
return s1.at(s1.size() - 1) < s2.at(s2.size() - 1);
});
for(int i = 0; i < nameList.size(); i++)
cout<<nameList.at(i)<<endl;
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGNzdHJpbmc+CiNpbmNsdWRlIDx2ZWN0b3I+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgovKm5hbWVzcGFjZSBzdGQgewpib29sIG9wZXJhdG9yPChjb25zdCBzdHJpbmcgJnMxLCBjb25zdCBzdHJpbmcgJnMyKXsKICAgIHJldHVybiBzMS5hdChzMS5zaXplKCkgLSAxKSA8IHMyLmF0KHMyLnNpemUoKSAtIDEpOwp9Cn0qLwppbnQgbWFpbigpewogICAgICAgIHZlY3RvciA8c3RyaW5nPiBuYW1lTGlzdDsKICAgICAgICBpbnQgbjsKICAgICAgICBjaW4+Pm47CiAgICAgICAgd2hpbGUobi0tKXsKICAgICAgICAgICAgc3RyaW5nIG5hbWU7CiAgICAgICAgICAgIGNoYXIgc3RyWzEwMF07CiAgICAgICAgICAgIGNpbj4+c3RyOwogICAgICAgICAgICBuYW1lICs9IHN0cjsKICAgICAgICAgICAgbmFtZUxpc3QucHVzaF9iYWNrKG5hbWUpOwogICAgICAgIH0KCiAgICAgICAgc29ydChuYW1lTGlzdC5iZWdpbigpLCBuYW1lTGlzdC5lbmQoKSwgW10gKGNvbnN0IHN0cmluZyAmczEsIGNvbnN0IHN0cmluZyAmczIpewogIHJldHVybiBzMS5hdChzMS5zaXplKCkgLSAxKSA8IHMyLmF0KHMyLnNpemUoKSAtIDEpOwp9KTsKZm9yKGludCBpID0gMDsgaSA8IG5hbWVMaXN0LnNpemUoKTsgaSsrKQogICAgICAgICAgICBjb3V0PDxuYW1lTGlzdC5hdChpKTw8ZW5kbDsKCiAgICAgICAgcmV0dXJuIDA7Cn0K