#include <bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
char ch[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
struct sss
{
int c[10];
int index;
int s_len;
};
int main()
{
IOS;
int n;
int a[25];
cin >> n;
string s[25];
sss ppp[25];
for (int i = 0; i < n; i++)
{
cin >> a[i];
ppp[i].index = i;
while (a[i])
{
s[i] += ch[a[i] % 10];
a[i] /= 10;
}
reverse(s[i].begin(), s[i].end());
ppp[i].s_len = s[i].size();
for (int j = 0; j < ppp[i].s_len; j++)
{
ppp[i].c[j] = s[i][j];
}
}
for (int i = 0; i < n; i++)
{
sort(ppp, ppp + n, [](sss a, sss b)
{
for(int i = 0; i < a.s_len || i < b.s_len;i++) {
if(a.c[i] != b.c[i]) {
return a.c[i] > b.c[i];
}else if(a.c[i] > b.c[i]) {
return true;
}else if(a.c[i] < b.c[i]) {
return false;
}
} });
}
for (int i = 0; i < n; i++)
{
cout << s[ppp[i].index];
}
return 0;
}