func_code_string: #include <bits/stdc++.h>   using namespace std;   int n;   bool isValid(int x1, int y1, int x2, int y2) { return x1 <= x2 && y1 <= y2; }   int ask(int x1, int y1, int x2, int y2) {     int ret = 0;     cout <<  ?   << x1 <<     << y1 <<     << x2 <<     << y2 <<   n ;     cout.flush();     cin >> ret;     return ret;   }   bool check(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4) {     if (!isValid(x1, y1, x2, y2)) return 0;     if (!isValid(x3, y3, x4, y4)) return 0;     int ret1 = ask(x1, y1, x2, y2);     int ret2 = ask(x3, y3, x4, y4);     return (ret1 > 0 && ret2 > 0);   }   int main() {     ios::sync_with_stdio(0);     cin >> n;     int x1, y1, x2, y2, x3, y3, x4, y4;     int l, r;     l = 1;     r = n;     while (l <= r) {       int s = (l + r) / 2;       if (ask(s, 1, n, n) == 2) {         l = s + 1;         x1 = s;       } else {         r = s - 1;       }     }     l = 1;     r = n;     while (l <= r) {       int s = (l + r) / 2;       if (ask(s, 1, n, n) >= 1) {         l = s + 1;         x3 = s;       } else {         r = s - 1;       }     }     l = 1;     r = n;     while (l <= r) {       int s = (l + r) / 2;       if (ask(1, 1, s, n) == 2) {         r = s - 1;         x2 = s;       } else {         l = s + 1;       }     }     l = 1;     r = n;     while (l <= r) {       int s = (l + r) / 2;       if (ask(1, 1, s, n) >= 1) {         r = s - 1;         x4 = s;       } else {         l = s + 1;       }     }     l = 1;     r = n;     while (l <= r) {       int s = (l + r) / 2;       if (ask(1, s, n, n) == 2) {         l = s + 1;         y1 = s;       } else {         r = s - 1;       }     }     l = 1;     r = n;     while (l <= r) {       int s = (l + r) / 2;       if (ask(1, s, n, n) >= 1) {         l = s + 1;         y3 = s;       } else {         r = s - 1;       }     }     l = 1;     r = n;     while (l <= r) {       int s = (l + r) / 2;       if (ask(1, 1, n, s) == 2) {         r = s - 1;         y2 = s;       } else {         l = s + 1;       }     }     l = 1;     r = n;     while (l <= r) {       int s = (l + r) / 2;       if (ask(1, 1, n, s) >= 1) {         r = s - 1;         y4 = s;       } else {         l = s + 1;       }     }     vector<int> xx1{x1, x3};     vector<int> xx2{x2, x4};     vector<int> yy1{y1, y3};     vector<int> yy2{y2, y4};     int xxx3 = xx1[1];     for (int xxx1 : xx1) {       int xxx4 = xx2[1];       for (int xxx2 : xx2) {         int yyy3 = yy1[1];         for (int yyy1 : yy1) {           int yyy4 = yy2[1];           for (int yyy2 : yy2) {             if (check(xxx1, yyy1, xxx2, yyy2, xxx3, yyy3, xxx4, yyy4)) {               cout <<  !   << xxx1 <<     << yyy1 <<     << xxx2 <<     << yyy2                    <<     << xxx3 <<     << yyy3 <<     << xxx4 <<     << yyy4;               return 0;             }             yyy4 = yyy2;           }           yyy3 = yyy1;         }         xxx4 = xxx2;       }       xxx3 = xxx1;     }     return 0;   }   