func_code_string: #include <bits/stdc++.h>   using namespace std;   int a[4], b[4];   int get(int *a) {     int ans;     cout <<  ?   << a[0] <<     << a[1] <<     << a[2] <<     << a[3] << endl;     cin >> ans;     return ans;   }   int get1(int a, int b, int c, int d) {     int ans;     cout <<  ?   << a <<     << b <<     << c <<     << d << endl;     cin >> ans;     return ans;   }   void solve(int *a) {     int l = a[0], r = a[2], mid;     while (l < r) {       mid = (l + r) / 2;       a[2] = mid;       if (get(a)) {         r = mid;       } else {         l = mid + 1;       }     }     a[2] = r;     l = a[0], r = a[2];     while (l < r) {       mid = (l + r) / 2;       a[0] = mid + 1;       if (get(a)) {         l = mid + 1;       } else {         r = mid;       }     }     a[0] = l;     l = a[1], r = a[3];     while (l < r) {       mid = (l + r) / 2;       a[3] = mid;       if (get(a)) {         r = mid;       } else {         l = mid + 1;       }     }     a[3] = r;     l = a[1], r = a[3];     while (l < r) {       mid = (l + r) / 2;       a[1] = mid + 1;       if (get(a)) {         l = mid + 1;       } else {         r = mid;       }     }     a[1] = r;   }   int main() {     ios_base::sync_with_stdio(false);     int n;     cin >> n;     b[0] = b[1] = a[0] = a[1] = 1;     a[2] = a[3] = b[2] = b[3] = n;     solve(a);     if (a[2] != n && get1(a[2] + 1, 1, n, n)) {       b[0] = a[2] + 1;     } else if (a[3] != n && get1(1, a[3] + 1, n, n)) {       b[1] = a[3] + 1;     } else if (a[0] != 1 && get1(1, 1, a[0] - 1, n)) {       b[2] = a[0] - 1;     } else if (a[1] != 1 && get1(1, 1, n, a[1] - 1)) {       b[3] = a[1] - 1;     }     solve(b);     cout <<  !  ;     for (int i = 0; i < 4; i++) {       cout << a[i] <<    ;     }     for (int i = 0; i < 4; i++) {       cout << b[i] <<    ;     }     return 0;   }   