#include <bits/stdc++.h>   using namespace std;   vector<vector<int> > V;   int in[50];   int main() {     vector<string> S;     V.resize(30);     int n, ile;     cin >> n;     ile = n;     while (ile--) {       string a;       cin >> a;       S.push_back(a);     }     for (int i = 0; i < S.size(); i++) {       for (int j = i + 1; j < S.size(); j++) {         for (int k = 0; k < min(S[i].size(), S[j].size()); k++) {           if (S[i][k] == S[j][k]) {             if (k + 1 == S[j].size()) {               cout <<  Impossible ;               return 0;             }             continue;           }           V[S[i][k] -  a ].push_back(S[j][k] -  a );           in[S[j][k] -  a ]++;           break;         }       }     }     vector<int> kol;     queue<int> Q;     for (int i = 0; i < 26; i++)       if (in[i] == 0) Q.push(i);     while (!Q.empty()) {       int v = Q.front();       Q.pop();       kol.push_back(v);       for (auto sas : V[v]) {         in[sas]--;         if (in[sas] == 0) Q.push(sas);       }     }     if (kol.size() < 26) {       cout <<  Impossible ;       return 0;     }     for (auto c : kol) cout << (char(c +  a ));   }   