func_code_string: #include <bits/stdc++.h>   using namespace std;   const int64_t INF = 1e18 + 10;   const int N = 2e7 + 10;   int MOD = 1000000007;   int g[26], in[26], used[26];   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     for (int i = 0; i < 26; i++) g[i] = -1;     int n;     cin >> n;     vector<string> a(n,   );     bool arr = 1;     for (int i = 0; i < n; i++) {       string s;       cin >> s;       for (auto j : s) used[j -  a ] = 1;       for (int j = 1; j < s.size(); j++) {         int u = s[j - 1] -  a ;         if (g[u] != -1 && g[u] != s[j] -  a  || s[j] == s[j - 1]) arr = 0;         g[s[j - 1] -  a ] = s[j] -  a ;         in[s[j] -  a ]++;       }     }     if (!arr) {       cout <<  NO ;       return 0;     }     string ans =   ;     for (int i = 0; i < 26; i++) {       if (in[i] == 0 && used[i]) {         int x = i;         while (x != -1) {           used[x]--;           if (used[x] < 0) break;           ans +=  a  + x;           x = g[x];         }       }     }     for (int i = 0; i < 26; i++) {       if (used[i] != 0) arr = 0;     }     if (arr)       cout << ans;     else       cout <<  NO ;   }   