#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
struct st
{
string num;
}a[26];
bool cmp(st e1,st e2)
{
int x=0;
while(x<=e1.num.size()&&x<=e2.num.size())
{
if(e1.num[x]!=e2.num[x])return e1.num[x]>e2.num[x];
x++;
}
if(e1.num.size()!=e2.num.size())return e1.num.size()<e2.num.size();
else return e1.num>e2.num;
}
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i].num;
}
sort(a+1,a+1+n,cmp);
for(int i=1;i<=n;i++)
{
cout<<a[i].num;
}
}