#include <iostream>
#include <string>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;
int comp_str(const void* a, const void* b)
{
string first = *((string*)a);
string second = *((string*)b);
if(first.length() == second.length()){
return strcmp(first.c_str(), second.c_str());
/*
for(unsigned int i =0; i < first.length(); i++)
{
if(first[i] > second[i])
return 1;
else if(first[i] < second[i])
return -1;
}
return 0;
*/
} else if(first.length() > second.length()){
return 1;
} else {
return -1;
}
}
int main(void)
{
long n;
vector<string> v;
string tmp;
cin >> n;
for(long i =0; i < n; i++)
{
cin >> tmp;
v.push_back(tmp);
}
/* remove duplicate */
sort(v.begin(), v.end());
vector<string>::iterator remove = unique(v.begin(), v.end());
if(remove != v.end())
v.erase(remove, v.end());
qsort(&v[0], v.size(), sizeof(string), comp_str);
for(long i =0; i < v.size(); i++)
cout << v[i] << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8Y3N0cmluZz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgY29tcF9zdHIoY29uc3Qgdm9pZCogYSwgY29uc3Qgdm9pZCogYikKewoJc3RyaW5nIGZpcnN0ID0gKigoc3RyaW5nKilhKTsKCXN0cmluZyBzZWNvbmQgPSAqKChzdHJpbmcqKWIpOwoJCglpZihmaXJzdC5sZW5ndGgoKSA9PSBzZWNvbmQubGVuZ3RoKCkpewogICAgICAgIHJldHVybiBzdHJjbXAoZmlyc3QuY19zdHIoKSwgc2Vjb25kLmNfc3RyKCkpOwoJCS8qCiAgICAgICAgZm9yKHVuc2lnbmVkIGludCBpID0wOyBpIDwgZmlyc3QubGVuZ3RoKCk7IGkrKykKCQl7CgkJCWlmKGZpcnN0W2ldID4gc2Vjb25kW2ldKQoJCQkJcmV0dXJuIDE7CgkJCWVsc2UgaWYoZmlyc3RbaV0gPCBzZWNvbmRbaV0pCgkJCQlyZXR1cm4gLTE7CgkJfQoJCXJldHVybiAwOwogICAgICAgICovCgl9IGVsc2UgaWYoZmlyc3QubGVuZ3RoKCkgPiBzZWNvbmQubGVuZ3RoKCkpewoJCXJldHVybiAxOwoJfSBlbHNlIHsKCQlyZXR1cm4gLTE7CQogICAgfQp9CgppbnQgbWFpbih2b2lkKQp7CiAgICBsb25nIG47Cgl2ZWN0b3I8c3RyaW5nPiB2OwoJc3RyaW5nIHRtcDsKCWNpbiA+PiBuOwoJCglmb3IobG9uZyBpID0wOyBpIDwgbjsgaSsrKQoJewoJCWNpbiA+PiB0bXA7CgkJdi5wdXNoX2JhY2sodG1wKTsKCX0KCQoJLyogcmVtb3ZlIGR1cGxpY2F0ZSAqLwoJc29ydCh2LmJlZ2luKCksIHYuZW5kKCkpOwoJdmVjdG9yPHN0cmluZz46Oml0ZXJhdG9yIHJlbW92ZSA9IHVuaXF1ZSh2LmJlZ2luKCksIHYuZW5kKCkpOwoJaWYocmVtb3ZlICE9IHYuZW5kKCkpCgkJdi5lcmFzZShyZW1vdmUsIHYuZW5kKCkpOwoJCglxc29ydCgmdlswXSwgdi5zaXplKCksIHNpemVvZihzdHJpbmcpLCBjb21wX3N0cik7CgkKCWZvcihsb25nIGkgPTA7IGkgPCB2LnNpemUoKTsgaSsrKQoJCWNvdXQgPDwgdltpXSA8PCBlbmRsOwogICAgCiAgICByZXR1cm4gMDsKfQ==