#include <bits/stdc++.h>
using namespace std;
int a[26][26];
int above[26];
int n;
char word1[110], word2[110];
char *cur, *pre;
char answer[27];
int main() {
  pre = word1;
  cur = word2;
  cin >> n;
  for (int i = 0; i < 26; i++) {
    above[i] = 0;
    for (int j = 0; j < 26; j++) a[i][j] = 0;
  }
  cin >> pre;
  for (int i = 1; i < n; i++) {
    cin >> cur;
    bool diff = false;
    for (int j = 0; j < min(strlen(cur), strlen(pre)); j++) {
      if (pre[j] != cur[j]) {
        diff = true;
        if (a[pre[j] - 'a'][cur[j] - 'a'] == 0) {
          a[pre[j] - 'a'][cur[j] - 'a'] = 1;
          above[cur[j] - 'a']++;
        }
        break;
      }
    }
    if ((!diff) && (strlen(pre) > strlen(cur))) {
      cout << "Impossible";
      return 0;
    }
    char *t = pre;
    pre = cur;
    cur = t;
  }
  for (int i = 0; i < 26; i++) {
    bool good = false;
    for (int j = 0; j < 26; j++) {
      if (above[j] == 0) {
        good = true;
        answer[i] = 'a' + j;
        above[j] = 1000;
        for (int k = 0; k < 26; k++) {
          if (a[j][k] == 1) {
            above[k]--;
          }
        }
        break;
      }
    }
    if (!good) {
      cout << "Impossible";
      return 0;
    }
  }
  answer[26] = '\0';
  cout << answer;
  return 0;
}
