func_code_string: #include <bits/stdc++.h>   using namespace std;   string s[110 * 110];   vector<string> v;   char sub(string s1, string s2) {     int dem[30];     memset(dem, 0, sizeof(dem));     for (int i = 0; i < s1.size(); i++) dem[s1[i] -  a ]++;     for (int i = 0; i < s2.size(); i++) dem[s2[i] -  a ]--;     for (int i = 0; i <=  z  -  a ; i++)       if (dem[i] == 1) return char(i +  a );   }   bool cmp(string s1, string s2) { return (s1.length() > s2.length()); }   int main() {     int n;     cin >> n;     if (n == 1) {       cout <<  ?             <<     << 1 <<     << 1 << endl;       cout.flush();       string s;       cin >> s;       cout <<  !   << s;       return 0;     }     cout <<  ?           <<     << 1 <<     << n - 1 << endl;     cout.flush();     int t = (n * (n - 1)) / 2;     map<string, int> ma;     for (int i = 1; i <= t; i++) {       string s;       cin >> s;       sort(s.begin(), s.end());       ma[s]++;     }     cout <<  ?           <<     << 1 <<     << n << endl;     cout.flush();     t = (n * (n + 1)) / 2;     for (int i = 1; i <= t; i++) {       string s;       cin >> s;       sort(s.begin(), s.end());       if (ma[s] > 0)         ma[s]--;       else         v.push_back(s);     }     sort(v.begin(), v.end(), cmp);     cout <<  !  ;     for (int i = 0; i < v.size() - 1; i++) cout << sub(v[i], v[i + 1]);     cout << v.back();     return 0;   }   