func_code_string: #include <bits/stdc++.h>   using namespace std;   long long n;   long long ask(long long a, long long b, long long c, long long d) {     long long res;     cout <<  ?   << a <<     << b <<     << c <<     << d << endl;     cout.flush();     cin >> res;     return res;   }   int main() {     ios_base::sync_with_stdio(false);     cin >> n;     long long x1 = -1;     long long x2 = -1;     long long y1 = -1;     long long y2 = -1;     for (int i = 1; i < n; i++) {       if (ask(i, 1, i, n) % 2 == 1) {         if (x1 == -1)           x1 = i;         else {           x2 = i;           break;         }       }     }     if (x1 == -1) {       for (int i = 1; i < n; i++) {         if (ask(1, i, n, i) % 2 == 1) {           if (y1 == -1)             y1 = i;           else {             y2 = i;             break;           }         }       }       if (y2 == -1) y2 = n;       long long low = 1;       long long high = n;       x1 = n;       while (low <= high) {         long long mid = (low + high) / 2;         if (ask(low, y1, mid, y1) % 2 == 1) {           high = mid - 1;           x1 = min(x1, mid);         } else {           low = mid + 1;         }       }       x2 = x1;     } else {       if (x2 == -1) x2 = n;       long long low = 1;       long long high = n;       y1 = n;       while (low <= high) {         long long mid = (low + high) / 2;         if (ask(x1, low, x1, mid) % 2 == 1) {           y1 = min(y1, mid);           high = mid - 1;         } else {           low = mid + 1;         }       }       low = 1;       high = n;       y2 = n;       while (low <= high) {         long long mid = (low + high) / 2;         if (ask(x2, low, x2, mid) % 2 == 1) {           y2 = min(y2, mid);           high = mid - 1;         } else {           low = mid + 1;         }       }     }     cout <<  !   << x1 <<     << y1 <<     << x2 <<     << y2 << endl;     cout.flush();     return 0;   }   