#include<stdio.h>
#include<stdbool.h>
struct St{
char a[10];
};
bool cmp(char a[],char b[]);
int main(){
int n,i,k;
scanf("%d",&n);
struct St st[n],temp;
for(i=0;i<n;i++){
scanf("%s",st[i].a);
}
for(i=0;i<n-1;i++){
for(k=0;k<n-i-1;k++){
if(cmp(st[k].a,st[k+1].a)>0){
temp=st[k];
st[k]=st[k+1];
st[k+1]=temp;
}
}
}
for(i=n-1;i>=0;i--){
printf("%s",st[i].a);
}
}
bool cmp(char a[],char b[]){
int i,j;
i=sizeof(a);
j=sizeof(b);
if(i>j){
i=j;
}
for(i=0;i<j;i++){
if(a[i]!=b[i])
return a[i]>b[i];
}
}