#include <bits/stdc++.h>
using namespace std;
const int N = 100005;
string s[N], res;
int n, st[N], top, pre[30], B;
vector<int> c[30];
void cmp(const string &a, const string &b) {
  int sz = min(a.size(), b.size());
  int i = 0;
  while (i < sz && a[i] == b[i]) i++;
  if (i == sz) {
    if (a.size() > b.size()) B = N;
    return;
  }
  int u = a[i] - 'a';
  int v = b[i] - 'a';
  c[u].push_back(v);
  pre[v]++;
  B++;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin >> n;
  for (int i = 1; i <= n; i++) cin >> s[i];
  for (int i = 1; i < n; i++) cmp(s[i], s[i + 1]);
  for (int i = 0; i < 26; i++)
    if (!pre[i]) st[++top] = i;
  while (top) {
    int u = st[top--];
    res = res + char(u + 'a');
    for (int i = 0; i < c[u].size(); i++) {
      int v = c[u][i];
      if (--pre[v] == 0) st[++top] = v;
      B--;
    }
  }
  if (B)
    cout << "Impossible";
  else
    cout << res;
  return 0;
}
