#include <bits/stdc++.h>
using namespace std;
vector<string> v;
bool cmp(string a,string b){
int La=a.length(); int Lb=b.length();
if( La==Lb ) return a>b;
int pa=0; int pb=0;;
for(int i=0;i<La*Lb;i++){
if( a[pa]!=b[pb] )
return a[pa]>b[pb];
pa++; pb++;
if( pa==La ) pa=0;
if( pb==Lb ) pb=0;
}
return a>b;
}
int main() {
int N;
while( cin>>N and N>0 ){
v.clear();
for(int i=0;i<N;i++){
string a;
cin>>a;
v.push_back(a);
}
sort( v.begin(),v.end(),cmp );
for(int i=0;i<N;i++)
cout<<v[i];
cout<<'\n';
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2ZWN0b3I8c3RyaW5nPiB2OwoKYm9vbCBjbXAoc3RyaW5nIGEsc3RyaW5nIGIpewoJaW50IExhPWEubGVuZ3RoKCk7IGludCBMYj1iLmxlbmd0aCgpOwoJaWYoIExhPT1MYiApIHJldHVybiBhPmI7CgkKCWludCBwYT0wOyBpbnQgcGI9MDs7Cglmb3IoaW50IGk9MDtpPExhKkxiO2krKyl7CgkJaWYoIGFbcGFdIT1iW3BiXSApCgkJCXJldHVybiBhW3BhXT5iW3BiXTsKCQlwYSsrOyBwYisrOwkKCQlpZiggcGE9PUxhICkgcGE9MDsKCQlpZiggcGI9PUxiICkgcGI9MDsKCX0KCXJldHVybiBhPmI7Cn0KCmludCBtYWluKCkgewoJaW50IE47Cgl3aGlsZSggY2luPj5OIGFuZCBOPjAgKXsKCQl2LmNsZWFyKCk7CgkJZm9yKGludCBpPTA7aTxOO2krKyl7CgkJCXN0cmluZyBhOwoJCQljaW4+PmE7CgkJCXYucHVzaF9iYWNrKGEpOwoJCX0KCQlzb3J0KCB2LmJlZ2luKCksdi5lbmQoKSxjbXAgKTsKCQlmb3IoaW50IGk9MDtpPE47aSsrKQoJCQljb3V0PDx2W2ldOwoJCWNvdXQ8PCdcbic7CQoJfQp9