#include <bits/stdc++.h>
using namespace std;
long long MOD = 1000000007;
int main() {
  int n;
  scanf("%d", &n);
  char S[200][200];
  for (int i = 0; i < n; i++) {
    scanf("%s", S[i]);
  }
  int v[26][26], done[26];
  memset(v, 0, sizeof v);
  memset(done, 0, sizeof done);
  for (int i = 0; i < n - 1; i++) {
    for (int j = 0; j < min(strlen(S[i]), strlen(S[i + 1])); j++) {
      if (!(S[i][j] == S[i + 1][j])) {
        v[S[i][j] - 'a'][S[i + 1][j] - 'a'] = 1;
        break;
      }
      if (j == min(strlen(S[i]), strlen(S[i + 1])) - 1 &&
          strlen(S[i]) >= strlen(S[i + 1])) {
        printf("Impossible\n");
        return 0;
      }
    }
  }
  std::vector<char> ans;
  for (int i = 0; i < 26; i++) {
    int cur = -1;
    for (int j = 0; j < 26; j++) {
      int f = 1;
      for (int k = 0; k < 26; k++) {
        f &= (v[k][j] == 0);
      }
      if (f && !done[j]) {
        done[j] = 1;
        cur = j;
        break;
      }
    }
    if (cur < 0)
      break;
    else {
      ans.push_back('a' + cur);
      for (int i = 0; i < 26; i++) {
        v[cur][i] = 0;
      }
    }
  }
  if (ans.size() == 26) {
    for (int i = 0; i < 26; i++) {
      printf("%c", ans[i]);
    }
    printf("\n");
  } else
    printf("Impossible\n");
  return 0;
}
