#include <bits/stdc++.h>
using namespace std;
const int N = 110;
int n;
char s[N][30];
char ss[30];
int p;
int len[N];
int in[30];
int nxt[30];
int bf[30][30], ind[30];
void go(int i) {
  ss[p++] = char(i + 'a');
  if (nxt[i] >= 0) go(nxt[i]);
}
int main() {
  scanf("%d", &n);
  memset(nxt, -1, sizeof(nxt));
  for (int i = 0; i < n; ++i) {
    scanf("%s", s[i]);
    len[i] = strlen(s[i]);
  }
  for (int i = 0; i < n; ++i) {
    for (int j = 0; j < len[i]; ++j) {
      in[s[i][j] - 'a'] = 1;
      for (int k = j + 1; k < len[i]; ++k) {
        bf[s[i][j] - 'a'][s[i][k] - 'a'] = 1;
      }
    }
    for (int j = 0; j < len[i] - 1; ++j) {
      nxt[s[i][j] - 'a'] = s[i][j + 1] - 'a';
    }
  }
  for (int i = 0; i < 26; ++i) {
    for (int j = 0; j < 26; ++j) {
      if (bf[j][i]) {
        ++ind[i];
      }
    }
  }
  for (int i = 0; i < 26; ++i) {
    if (!ind[i] && in[i]) {
      go(i);
    }
  }
  puts(ss);
  return 0;
}
