#include <bits/stdc++.h>
using namespace std;
map<long long int, long long int> g[26];
long long int vis[26];
long long int n;
long long int stk[26];
stack<long long int> stk1;
bool cycleExistsUtil(long long int src) {
  if (vis[src] == 0) {
    vis[src] = 1;
    stk[src] = 1;
    for (auto itr = g[src].begin(); itr != g[src].end(); itr++) {
      long long int neigh = itr->first;
      if (vis[neigh] == 0 && cycleExistsUtil(neigh))
        return true;
      else if (stk[neigh] == 1)
        return true;
    }
  }
  stk[src] = 0;
  return false;
}
bool cycleExists() {
  for (long long int i = 0; i < 26; i++) {
    vis[i] = 0;
    stk[i] = 0;
  }
  for (int i = 0; i < 26; i++) {
    if (cycleExistsUtil(i)) return true;
  }
  return false;
}
void topoUtil(long long int src) {
  vis[src] = 1;
  for (auto itr = g[src].begin(); itr != g[src].end(); itr++) {
    long long int neigh = itr->first;
    if (vis[neigh] == 0) {
      topoUtil(neigh);
    }
  }
  stk1.push(src);
}
void topo() {
  for (long long int i = 0; i < 26; i++) {
    vis[i] = 0;
    stk[i] = 0;
  }
  for (long long int i = 0; i < 26; i++) {
    if (vis[i] == 0) topoUtil(i);
  }
  while (!stk1.empty()) {
    cout << (char)(stk1.top() + 'a');
    stk1.pop();
  }
  cout << "\n";
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  cin >> n;
  string s[n];
  for (long long int i = 0; i < n; i++) {
    cin >> s[i];
  }
  for (long long int i = 0; i < 26; i++) {
    vis[i] = 0;
    g[i].clear();
  }
  for (long long int i = 0; i < n; i++) {
    for (long long int j = i + 1; j < n; j++) {
      long long int len = min(s[i].size(), s[j].size());
      long long int flag = 0;
      for (long long int k = 0; k < len; k++) {
        if (s[i][k] == s[j][k]) continue;
        g[s[i][k] - 'a'][s[j][k] - 'a'] = 1;
        flag = 1;
        break;
      }
      if (flag == 0 && s[i].size() > s[j].size()) {
        cout << "Impossible\n";
        return 0;
      }
    }
  }
  if (cycleExists()) {
    cout << "Impossible\n";
    return 0;
  }
  topo();
}
