#include <bits/stdc++.h>
using namespace std;
int i, j, k, n;
string str[110], ans, tmp;
int m[30][30], d[30], al;
int flag;
int main() {
  cin >> n;
  for (i = 0; i < n; i++) cin >> str[i];
  flag = 0;
  for (i = 0; i < n - 1; i++) {
    int l1, l2;
    l1 = str[i].length();
    l2 = str[i + 1].length();
    k = min(l1, l2);
    for (j = 0; j < k; j++)
      if (str[i][j] != str[i + 1][j]) break;
    if (j < k) {
      if (m[str[i][j] - 'a'][str[i + 1][j] - 'a'] == 0) {
        m[str[i][j] - 'a'][str[i + 1][j] - 'a'] = 1;
        d[str[i + 1][j] - 'a']++;
      }
    } else if (j == l2) {
      flag = 1;
      break;
    }
  }
  if (flag == 1) {
    cout << "Impossible" << endl;
    return 0;
  }
  while (1) {
    for (i = 0; i < 26; i++)
      if (d[i] == 0) {
        for (j = 0; j < 26; j++)
          if (m[i][j] == 1) {
            m[i][j] = 0;
            d[j]--;
          }
        ans += "a";
        ans[al] += i;
        al++;
        d[i] = -1;
        break;
      }
    if (i == 26) break;
  }
  if (al == 26)
    cout << ans << endl;
  else
    cout << "Impossible" << endl;
  return 0;
}
