#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
bool cmp(string a, string b)
{
int min_ = min(a.length(),b.length());
for (int i = 0; i < min_; i++)
{
if (a[i]-'0' != b[i]-'0') return a[i]>b[i];
else continue;
}
if (a[min_] < a[0])return a.length() < b.length();
else return a.length() > b.length();
if (b[min_] < b[0])return a.length() < b.length();
else return a.length() > b.length();
}
int main()
{
int n; cin >> n; vector<string> a(n);
for (int i = 0; i < n; i++) cin >> a[i];
sort(a.begin(), a.end(), cmp);
for (string i : a)cout << i;
return 0;
}