func_code_string: #include <bits/stdc++.h>   using namespace std;   pair<pair<int, int>, pair<int, int> > find_pramougolnik(int x1, int y1, int x2,                                                           int y2) {     int lef = x1 - 1, rig = x2;     while (lef + 1 < rig) {       int mid = (lef + rig) / 2;       cout <<  ?   << x1 <<     << y1 <<     << mid <<     << y2 << endl;       int kol;       cin >> kol;       if (kol == 1)         rig = mid;       else         lef = mid;     }     int up = rig;     lef = x1 - 1, rig = x2;     while (lef + 1 < rig) {       int mid = (lef + rig) / 2;       cout <<  ?   << mid + 1 <<     << y1 <<     << x2 <<     << y2 << endl;       int kol;       cin >> kol;       if (kol == 1)         lef = mid;       else         rig = mid;     }     int down = lef + 1;     lef = y1 - 1, rig = y2;     while (lef + 1 < rig) {       int mid = (lef + rig) / 2;       cout <<  ?   << x1 <<     << y1 <<     << x2 <<     << mid << endl;       int kol;       cin >> kol;       if (kol == 1)         rig = mid;       else         lef = mid;     }     int rights = rig;     lef = y1 - 1, rig = y2;     while (lef + 1 < rig) {       int mid = (lef + rig) / 2;       cout <<  ?   << x1 <<     << mid + 1 <<     << x2 <<     << y2 << endl;       int kol;       cin >> kol;       if (kol == 1)         lef = mid;       else         rig = mid;     }     int lefts = lef + 1;     return make_pair(make_pair(down, lefts), make_pair(up, rights));   }   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     int n;     cin >> n;     int lef = 0, rig = n;     while (lef + 1 < rig) {       int mid = (lef + rig) / 2;       cout <<  ? 1 1   << n <<     << mid << endl;       int kol;       cin >> kol;       if (kol > 0)         rig = mid;       else         lef = mid;     }     if (rig != n) {       cout <<  ? 1   << rig + 1 <<     << n <<     << n << endl;       int kol;       cin >> kol;       if (kol == 1) {         pair<pair<int, int>, pair<int, int> > A = find_pramougolnik(1, 1, n, rig);         pair<pair<int, int>, pair<int, int> > B =             find_pramougolnik(1, rig + 1, n, n);         cout <<  !   << A.first.first <<     << A.first.second <<                  << A.second.first <<     << A.second.second <<     << B.first.first              <<     << B.first.second <<     << B.second.first <<                  << B.second.second << endl;         exit(0);       }     }     lef = 0, rig = n;     while (lef + 1 < rig) {       int mid = (lef + rig) / 2;       cout <<  ? 1 1   << mid <<     << n << endl;       int kol;       cin >> kol;       if (kol > 0)         rig = mid;       else         lef = mid;     }     pair<pair<int, int>, pair<int, int> > A = find_pramougolnik(1, 1, rig, n);     pair<pair<int, int>, pair<int, int> > B = find_pramougolnik(rig + 1, 1, n, n);     cout <<  !   << A.first.first <<     << A.first.second <<              << A.second.first <<     << A.second.second <<     << B.first.first          <<     << B.first.second <<     << B.second.first <<              << B.second.second << endl;     return 0;   }   