func_code_string: #include <bits/stdc++.h>   using namespace std;   string a[100];   int id[30];   vector<int> cn[30];   int main() {     int n;     scanf( %d , &n);     for (int i = 0; i < n; i++) cin >> a[i];     for (int i = 1; i < n; i++) {       char l1 =  - ;       char l2 =  - ;       int j = -1;       int s = a[i - 1].size();       if (a[i - 1].size() > a[i].size()) {         s = a[i].size();         if (a[i] == string(a[i - 1].substr(0, s))) id[0]++;       }       while (++j < s) {         if (a[i - 1][j] == a[i][j]) continue;         l1 = a[i - 1][j];         l2 = a[i][j];         break;       }       if (l1 !=  - ) {         cn[l1 -  a ].push_back(l2 -  a );         id[l2 -  a ]++;       }     }     queue<int> ts;     for (int i = 0; i < 26; i++)       if (!id[i]) ts.push(i);     string anw =   ;     while (!ts.empty()) {       int u = ts.front();       ts.pop();       anw += char(u +  a );       for (auto v : cn[u]) {         id[v]--;         if (!id[v]) ts.push(v);       }     }     cout << (anw.size() == 26 ? anw :  Impossible ) << endl;   }   