#include<iostream>
#include<stdio.h>
#include<string>
#include<string.h>
#include<algorithm>
#define MAXN 100005
using namespace std;
string str[MAXN];
int cmp(string a,string b)
{
string str1=a+b;
string str2=b+a;
if(str1<str2) return 1;
else return 0;
}
int main()
{
int n;
int i,j;
while(scanf("%d",&n)!=EOF)
{
if(n==0) continue;
for(i=0;i<n;i++) cin>>str[i];
sort(str,str+n,cmp);
for(i=0;i<n;i++) cout<<str[i];
cout<<endl;
}
return 0;
}
#include<stdio.h>
#include<string>
#include<string.h>
#include<algorithm>
#define MAXN 100005
using namespace std;
string str[MAXN];
int cmp(string a,string b)
{
string str1=a+b;
string str2=b+a;
if(str1<str2) return 1;
else return 0;
}
int main()
{
int n;
int i,j;
while(scanf("%d",&n)!=EOF)
{
if(n==0) continue;
for(i=0;i<n;i++) cin>>str[i];
sort(str,str+n,cmp);
for(i=0;i<n;i++) cout<<str[i];
cout<<endl;
}
return 0;
}