#include<bits/stdc++.h>usingnamespace std;int n;
vector<string> q;int k =0;boolcmp(string a , string b){int len1 = a.length(), len2 = b.length();int i =0;for(; i < len1 && i < len2 ; i ++){if(a[i]!= b[i])return a[i]< b[i];}for(int k =0;i < len1; i ++, k ++){if(a[k]!= a[i])return a[i]< a[k];}for(int k =0; i < len2 ; i ++, k ++)if(b[k]!= b[i])return b[k]< b[i];returntrue;}intmain(){
cin>>n;for(int i =0; i < n ; i ++){
string str;
cin>>str;
q.push_back(str);}sort(q.begin(),q.end(),cmp);//for(int i = 0 ; i< n ; i ++) cout<<q[i]<<endl;for(int i = n -1; i >=0;i --) cout<<q[i];return0;}