func_code_string: #include <bits/stdc++.h>   using namespace std;   const int INF = 1000000000;   const long long LINF = 1e17;   const double PI = 3.141592653589793238;   const int mod = 1000000007;   const double eps = 0.000001;   template <typename T, typename TT>   ostream &operator<<(ostream &s, pair<T, TT> t) {     return s <<  (  << t.first <<  ,  << t.second <<  ) ;   }   template <typename T>   ostream &operator<<(ostream &s, vector<T> t) {     for (int i = 0; i < (t).size(); i++)       s << t[i] << ((i < (t).size() - 1) ?     :   );     return s;   }   template <typename T>   ostream &operator<<(ostream &s, set<T> t) {     for (T x : t) s << x <<    ;     return s;   }   template <typename T>   istream &operator>>(istream &s, vector<T> &t) {     for (int _i = 0; _i < t.size(); _i++) s >> t[_i];     return s;   }   int main(int argc, const char *argv[]) {     int n;     cin >> n;     int q[10][1023], p[10][1023];     for (int i = (0); i < (int)(10); i++)       for (int j = (0); j < (int)(n); j++) q[i][j] = p[i][j] = INF;     for (int i = (0); i < (int)(10); i++) {       vector<int> cq, cp;       for (int j = (0); j < (int)(n); j++) {         if (j & (1 << i))           cp.push_back(j + 1);         else           cq.push_back(j + 1);       }       if (cp.size() > 0) {         cout << cp.size() <<   n  << cp <<   n ;         fflush(stdout);         for (int j = (0); j < (int)(n); j++) cin >> p[i][j];       }       if (cq.size() < n) {         cout << cq.size() <<   n  << cq <<   n ;         fflush(stdout);         for (int j = (0); j < (int)(n); j++) cin >> q[i][j];       }     }     cout <<  -1 n ;     for (int j = (0); j < (int)(n); j++) {       int minv = INF;       for (int i = (0); i < (int)(10); i++) {         if (j & (1 << i))           minv = min(minv, q[i][j]);         else           minv = min(minv, p[i][j]);       }       cout << minv <<    ;     }   }   