#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define repeat(i,n) for (long long i = 0; (i) < (n); ++ (i)) #define debug(x) cerr << #x << ": " << x << '\n' #define debugArray(x,n) for(long long i = 0; (i) < (n); ++ (i)) cerr << #x << "[" << i << "]: " << x[i] << '\n' #define debugArrayP(x,n) for(long long i = 0; (i) < (n); ++ (i)) cerr << #x << "[" << i << "]: " << x[i].first<< " " << x[i].second << '\n' using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair Pii; typedef vector vint; typedef vector vll; const ll INF = INT_MAX; const ll MOD = 1e9+7; bool compare(const string& s,const string& t){ if(s[0]!=t[0])return s>N; vector S(N); repeat(i,N){ cin>>S[i]; } string ans; while(!S.empty()){ sort(S.begin(),S.end(),compare); ans += S[0][0]; S[0].erase(S[0].begin()); if(S[0].empty())S.erase(S.begin()); } cout << ans << endl; return 0; }