#include <iostream>
#include <string>
#include <vector>
using namespace std;
vector<string> a;
void ExtractNum(const string& s) {
string num = "";
for (int i = 0; i < s.length(); i++)
if ((s[i] >= '0') && (s[i] <= '9'))
num += s[i];
else if (num != "") {
a.push_back(num);
num = "";
}
}
void Input() {
int n; string s;
cin >> n;
getline(cin, s);
for (int i = 0; i < n; i++) {
getline(cin, s);
s += 'a';
ExtractNum(s);
}
}
void AddZeros() {
int maxdigits = 0;
for (int i = 0; i < a.size(); i++)
maxdigits = max(maxdigits, (int)a[i].length());
for (int i = 0; i < a.size(); i++)
for (int j = 1; j <= maxdigits - a[i].length(); j++)
a[i] = '0' + a[i];
}
void Sort() {
string t;
for (int i = 0; i < a.size(); i++)
for (int j = i + 1; j < a.size(); j++)
if (a[i] > a[j]) {
t = a[i]; a[i] = a[j]; a[j] = t;
}
}
void TrimZeros() {
for (int i = 0; i < a.size(); i++)
while ((a[i].length > 1) && (a[i][0] == '0'))
a[i].erase(0, 1);
}
void Output() {
for (int i = 0; i < a.size(); i++) {
cout << a[i] << endl;
}
}
int main() {
Input();
AddZeros();
Sort();
TrimZeros();
Output();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp2ZWN0b3I8c3RyaW5nPiBhOwoKdm9pZCBFeHRyYWN0TnVtKGNvbnN0IHN0cmluZyYgcykgewogICAgc3RyaW5nIG51bSA9ICIiOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLmxlbmd0aCgpOyBpKyspCiAgICAgICAgaWYgKChzW2ldID49ICcwJykgJiYgKHNbaV0gPD0gJzknKSkKICAgICAgICAgICAgbnVtICs9IHNbaV07CiAgICAgICAgZWxzZSBpZiAobnVtICE9ICIiKSB7CiAgICAgICAgICAgIGEucHVzaF9iYWNrKG51bSk7CiAgICAgICAgICAgIG51bSA9ICIiOwogICAgICAgIH0KfQoKdm9pZCBJbnB1dCgpIHsKICAgIGludCBuOyBzdHJpbmcgczsKICAgIGNpbiA+PiBuOwogICAgZ2V0bGluZShjaW4sIHMpOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBnZXRsaW5lKGNpbiwgcyk7CiAgICAgICAgcyArPSAnYSc7CiAgICAgICAgRXh0cmFjdE51bShzKTsKICAgIH0KfQoKdm9pZCBBZGRaZXJvcygpIHsKICAgIGludCBtYXhkaWdpdHMgPSAwOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhLnNpemUoKTsgaSsrKQogICAgICAgIG1heGRpZ2l0cyA9IG1heChtYXhkaWdpdHMsIChpbnQpYVtpXS5sZW5ndGgoKSk7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IGEuc2l6ZSgpOyBpKyspCiAgICAgICAgZm9yIChpbnQgaiA9IDE7IGogPD0gbWF4ZGlnaXRzIC0gYVtpXS5sZW5ndGgoKTsgaisrKQogICAgICAgICAgICBhW2ldID0gJzAnICsgYVtpXTsKfQoKdm9pZCBTb3J0KCkgewogICAgc3RyaW5nIHQ7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IGEuc2l6ZSgpOyBpKyspCiAgICAgICAgZm9yIChpbnQgaiA9IGkgKyAxOyBqIDwgYS5zaXplKCk7IGorKykKICAgICAgICAgICAgaWYgKGFbaV0gPiBhW2pdKSB7CiAgICAgICAgICAgICAgICB0ID0gYVtpXTsgYVtpXSA9IGFbal07IGFbal0gPSB0OwogICAgICAgICAgICB9Cn0KCnZvaWQgVHJpbVplcm9zKCkgewogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhLnNpemUoKTsgaSsrKQogICAgICAgIHdoaWxlICgoYVtpXS5sZW5ndGggPiAxKSAmJiAoYVtpXVswXSA9PSAnMCcpKQogICAgICAgICAgICBhW2ldLmVyYXNlKDAsIDEpOwp9Cgp2b2lkIE91dHB1dCgpIHsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgYS5zaXplKCk7IGkrKykgewogICAgICAgIGNvdXQgPDwgYVtpXSA8PCBlbmRsOwogICAgfQp9CgppbnQgbWFpbigpIHsKICAgIElucHV0KCk7CiAgICBBZGRaZXJvcygpOwogICAgU29ydCgpOwogICAgVHJpbVplcm9zKCk7CiAgICBPdXRwdXQoKTsKICAgIHJldHVybiAwOwp9