func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, x, y, m, nr, nr1, st, dr, i, j, z, p1, p2, aux, a[1004], b[1004],       s[1004], d[1004];   bool ok, c[1004];   int main() {     scanf( %d %d %d , &n, &x, &y);     ok = true;     y = 1;     s[1] = 1;     d[1] = n;     while (ok == true) {       nr1 = 0;       nr = 0;       for (i = 1; i <= y; i++) {         if (s[i] != d[i]) {           for (j = s[i]; j <= ((s[i] + d[i]) / 2); j++) b[++nr1] = j;           for (j = ((s[i] + d[i]) / 2 + 1); j <= d[i]; j++) a[++nr] = j;         }       }       printf( ? %d  , nr1);       for (i = 1; i <= nr1; i++) printf( %d  , b[i]);       printf(  n );       fflush(stdout);       scanf( %d , &z);       if (z != 0 && z != x) break;       for (i = y; i >= 1; i--) {         s[2 * i] = (s[i] + d[i]) / 2 + 1;         d[2 * i] = d[i];         s[2 * i - 1] = s[i];         d[2 * i - 1] = (s[i] + d[i]) / 2;       }       y *= 2;     }     st = 1;     dr = nr1;     while (st <= dr) {       m = (st + dr) / 2;       printf( ? %d  , m);       for (i = 1; i <= m; i++) printf( %d  , b[i]);       printf(  n );       fflush(stdout);       scanf( %d , &z);       if (z != 0 && z != x)         dr = m - 1;       else         st = m + 1;     }     p1 = b[st];     for (i = 1; i <= n; i++) c[i] = false;     for (i = 1; i <= nr1; i++) c[b[i]] = true;     if (y > 1) {       for (i = 1; i <= y; i++) {         if (s[i] <= p1 && p1 <= d[i]) break;       }       nr = 0;       for (j = s[i]; j < p1; j++) {         if (c[j] == false) a[++nr] = j;       }       for (j = (p1 + 1); j <= d[i]; j++) {         if (c[j] == false) a[++nr] = j;       }     }     st = 1;     dr = nr;     if (st < dr) {       while (st <= dr) {         m = (st + dr) / 2;         printf( ? %d  , m);         for (i = 1; i <= m; i++) printf( %d  , a[i]);         printf(  n );         fflush(stdout);         scanf( %d , &z);         if (z != 0 && z != x)           dr = m - 1;         else           st = m + 1;       }     }     p2 = a[st];     if (p1 > p2) {       aux = p1;       p1 = p2;       p2 = aux;     }     printf( ! %d %d n , p1, p2);     fflush(stdout);     return 0;   }   