#include <bits/stdc++.h>
using namespace std;
int n, m, j, k, ans;
int visit[105];
vector<int> v[105];
int a[28];
string s[2];
void dfs(int i) {
  visit[i] = 1;
  for (int j = 0; j < v[i].size(); j++) {
    if (!visit[v[i][j]])
      dfs(v[i][j]);
    else if (visit[v[i][j]] == 1)
      ans = 0;
  }
  visit[i] = 2;
  a[k++] = i;
}
int main() {
  ans = 1;
  cin >> n;
  cin >> s[0];
  for (int i = 0; i < n - 1; i++) {
    cin >> s[1];
    int m1 = s[0].size();
    int m2 = s[1].size();
    for (j = 0; j < m1 && j < m2 && s[0][j] == s[1][j]; j++)
      ;
    if (j < m1 && j < m2)
      v[s[0][j] - 'a'].push_back(s[1][j] - 'a');
    else if (m1 > m2)
      ans = 0;
    s[0] = s[1];
  }
  for (int i = 0; i < 26; i++)
    if (!visit[i]) dfs(i);
  if (ans)
    for (int i = k - 1; i >= 0; i--) putchar(a[i] + 'a');
  else
    cout << "Impossible";
  return 0;
}
