#include <bits/stdc++.h>
using namespace std;
char a[105][105], s[30];
vector<int> v[26];
int c[26], sn;
queue<int> q;
inline bool add(char* x, char* y) {
  int i;
  for (i = 0; x[i] && y[i]; i++)
    if (x[i] != y[i]) {
      v[x[i] - 'a'].push_back(y[i] - 'a');
      c[y[i] - 'a']++;
      return 0;
    }
  if (x[i]) return 1;
}
int main() {
  int n, i, x, y;
  for (scanf("%d", &n), i = 0; i < n; i++) scanf("%s", a[i]);
  for (i = 1; i < n; i++)
    if (add(a[i - 1], a[i])) return puts("Impossible");
  for (i = sn = 0; i < 26; i++)
    if (!c[i]) q.push(i);
  while (!q.empty()) {
    x = q.front();
    q.pop();
    s[sn++] = x + 'a';
    for (i = 0; i < v[x].size(); i++)
      if (--c[y = v[x][i]] == 0) q.push(y);
  }
  puts(sn >= 26 ? s : "Impossible");
  return 0;
}
