#include using namespace std; typedef pair pii; typedef long long ll; const int N = 2000086, MOD = 998244353, INF = 0x3f3f3f3f; ll res; int n, m, cnt, w[N], ed = 1000000; int ask(int x1, int x2, int y1, int y2) { printf("? %d %d %d %d", x1, x2, y1, y2); fflush(stdout); scanf("%d", &x1); return x1; } vector ans; void solve() { int pre = 0; while (pre <= ed && ask(pre, ed, 0, ed)) { int l = pre, r = ed; while (l < r) { int mid = l + r >> 1; if (ask(pre, mid, 0, ed)) r = mid; else l = mid + 1; } { int x = l, pre = 0; while (pre <= ed && ask(x, x, pre, ed)) { int l = pre, r = ed; while (l < r) { int mid = l + r >> 1; if (ask(x, x, pre, mid)) r = mid; else l = mid + 1; } ans.push_back({x, l}); pre = l + 1; } } pre = l + 1; } printf("%d\n", ans.size()); for (auto u : ans) printf("%d %d\n", u.first, u.second); fflush(stdout); } int main() { solve(); return 0; }