#include <bits/stdc++.h>
using namespace std;
const int maxn = 110;
char name[maxn][maxn];
int to[maxn][maxn], indeg[maxn], deg[maxn];
int q[maxn], qe, qb;
int main() {
  int n;
  cin >> n;
  for (int i = 0; i < n; i++) {
    scanf("%s", name[i]);
    if (i == 0) continue;
    if (!strcmp(name[i - 1], name[i])) continue;
    int k = 0;
    while (name[i][k] == name[i - 1][k]) k++;
    if (k == strlen(name[i - 1])) continue;
    if (k == strlen(name[i])) {
      puts("Impossible");
      return 0;
    }
    to[name[i - 1][k] - 'a'][deg[name[i - 1][k] - 'a']++] = name[i][k] - 'a';
    indeg[name[i][k] - 'a']++;
  }
  for (int i = 0; i < 26; i++) {
    if (indeg[i] == 0) q[qb++] = i;
  }
  while (qe < qb) {
    int u = q[qe++];
    for (int i = 0; i < deg[u]; i++) {
      int v = to[u][i];
      indeg[v]--;
      if (indeg[v] == 0) q[qb++] = v;
    }
  }
  if (qb == 26) {
    for (int i = 0; i < 26; i++) printf("%c", q[i] + 'a');
  } else
    puts("Impossible");
  return 0;
}
