func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, adj[166][166];   bool h[166];   vector<char> V[166], r;   string a[105];   void dfs(char x) {     h[x] = true;     for (typeof(V[x].begin()) it = V[x].begin(); it != V[x].end(); it++)       if (!h[*it]) dfs(*it);     r.push_back(x);   }   int main() {     cin >> n;     for (int i = 1; i <= n; i++) cin >> a[i];     for (int i = 1; i <= n - 1; i++) {       int q = 0;       while (a[i][q] == a[i + 1][q]) q++;       if (q >= a[i + 1].size() and q < a[i].size())         return puts( Impossible ) && 0;       else if (q >= a[i].size())         continue;       adj[a[i + 1][q]][a[i][q]] = 1;       for (typeof(V[a[i][q]].begin()) it = V[a[i][q]].begin();            it != V[a[i][q]].end(); it++)         adj[a[i + 1][q]][*it] = 1;       V[a[i + 1][q]].push_back(a[i][q]);     }     for (int i =  a ; i <=  z ; i++)       if (!h[i]) dfs(i);     for (int i = 0; i <= r.size() - 1; i++)       for (int j = 0; j <= i; j++)         if (adj[r[j]][r[i]]) return puts( Impossible ) && 0;     for (typeof(r.begin()) it = r.begin(); it != r.end(); it++) cout << *it;     cout << endl;     return 0;   }   