#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using vi = vector<int>;
using vs = vector<string>;
using vb = vector<bool>;
using pii = pair<int, int>;
const int mod = 1e9 + 7, inf = INT_MAX, ninf = INT_MIN;
void setIO(string name = "") {
  cin.tie(0)->sync_with_stdio(0);
  if (!name.empty()) {
    freopen((name + ".in").c_str(), "r", stdin);
    freopen((name + ".out").c_str(), "w", stdout);
  }
}
void solve();
int main() {
  setIO();
  solve();
  return 0;
}
void solve() {
  int n;
  cin >> n;
  vector<string> arr(n);
  for (auto& i : arr) cin >> i;
  sort(arr.begin(), arr.end(),
       [](string& a, string& b) { return a + b < b + a; });
  for (auto i : arr) cout << i;
}
