#include <bits/stdc++.h>
using namespace std;
const int N = int(3e4);
int n, x, y;
string second[N];
bool a[33][33], u[33];
char b[33];
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> second[i];
  }
  bool ok;
  for (int i = 1; i < n; i++) {
    for (int j = i + 1; j <= n; j++) {
      int m = min(second[i].size(), second[j].size());
      ok = 1;
      for (int t = 0; t < m; t++) {
        if (second[i][t] != second[j][t]) {
          x = second[i][t] - 'a';
          y = second[j][t] - 'a';
          a[x][y] = 1;
          if (a[y][x] == 1) {
            puts("Impossible");
            return 0;
          }
          ok = 0;
          break;
        }
      }
      if (ok) {
        if (second[i].size() > second[j].size()) {
          puts("Impossible");
          return 0;
        }
      }
    }
  }
  int bn = 0;
  for (int t = 0; t < 100; t++) {
    for (int i = 0; i < 26; i++)
      if (!u[i]) {
        ok = 1;
        for (int j = 0; j < 26; j++)
          if (!u[j]) {
            if (a[j][i]) ok = 0;
          }
        if (ok) {
          b[bn++] = char(i + 'a');
          u[i] = 1;
        }
      }
  }
  if (bn < 26) {
    cout << "Impossible";
    return 0;
  }
  for (int i = 0; i < 26; i++) {
    cout << b[i];
  }
  return 0;
}
