#include <bits/stdc++.h>
using namespace std;
struct node {
  char str[55];
} str[50005];
bool cmp(node a, node b) {
  char s1[120], s2[120];
  char s3[120], s4[120];
  strcpy(s1, a.str);
  strcpy(s2, b.str);
  strcpy(s3, b.str);
  strcpy(s4, a.str);
  strcat(s1, s2);
  strcat(s3, s4);
  return strcmp(s1, s3) < 0;
}
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) scanf("%s", str[i].str);
  sort(str + 1, str + 1 + n, cmp);
  for (int i = 1; i <= n; i++) {
    printf("%s", str[i].str);
  }
  putchar('\n');
}
