#include <bits/stdc++.h>
using namespace std;
int n, st, dr, mij, r, l12, l11, c12, c11;
int l21, l22, c21, c22;
int nr;
void getldrept(int li, int ls, int ci, int cs) {
  int st, dr;
  int l1, c1, l2, c2;
  st = li;
  dr = ls;
  while (st < dr) {
    mij = (st + dr) / 2;
    cout << "? " << li << ' ' << ci << ' ' << mij << ' ' << cs << '\n';
    cin >> r;
    if (r)
      dr = mij;
    else
      st = mij + 1;
  }
  l2 = st;
  st = li;
  dr = l2;
  while (st < dr) {
    mij = (st + dr + 1) / 2;
    cout << "? " << mij << ' ' << ci << ' ' << l2 << ' ' << cs << '\n';
    cin >> r;
    if (r)
      st = mij;
    else
      dr = mij - 1;
  }
  l1 = st;
  st = ci;
  dr = cs;
  while (st < dr) {
    mij = (st + dr) / 2;
    cout << "? " << l1 << ' ' << ci << ' ' << l2 << ' ' << mij << '\n';
    cin >> r;
    if (r)
      dr = mij;
    else
      st = mij + 1;
  }
  c2 = st;
  st = ci;
  dr = c2;
  while (st < dr) {
    mij = (st + dr + 1) / 2;
    cout << "? " << l1 << ' ' << mij << ' ' << l2 << ' ' << c2 << '\n';
    cin >> r;
    if (r)
      st = mij;
    else
      dr = mij - 1;
  }
  c1 = st;
  if (nr == 1) {
    l11 = l1;
    l12 = l2;
    c11 = c1;
    c12 = c2;
  } else {
    l21 = l1;
    l22 = l2;
    c21 = c1;
    c22 = c2;
  }
}
int main() {
  cin >> n;
  nr = 1;
  getldrept(1, n, 1, n);
  nr = 2;
  if (l11 > 1) {
    cout << "? " << 1 << ' ' << 1 << ' ' << l11 - 1 << ' ' << n << '\n';
    cin >> r;
    if (r) {
      getldrept(1, l11 - 1, 1, n);
      cout << "! " << l11 << ' ' << c11 << ' ' << l12 << ' ' << c12;
      cout << ' ' << l21 << ' ' << c21 << ' ' << l22 << ' ' << c22;
      return 0;
    }
  }
  if (l12 < n) {
    cout << "? " << l12 + 1 << ' ' << 1 << ' ' << n << ' ' << n << '\n';
    cin >> r;
    if (r) {
      getldrept(l12 + 1, n, 1, n);
      cout << "! " << l11 << ' ' << c11 << ' ' << l12 << ' ' << c12;
      cout << ' ' << l21 << ' ' << c21 << ' ' << l22 << ' ' << c22;
      return 0;
    }
  }
  if (c11 > 1) {
    cout << "? " << 1 << ' ' << 1 << ' ' << n << ' ' << c11 - 1 << '\n';
    cin >> r;
    if (r) {
      getldrept(1, n, 1, c11 - 1);
      cout << "! " << l11 << ' ' << c11 << ' ' << l12 << ' ' << c12;
      cout << ' ' << l21 << ' ' << c21 << ' ' << l22 << ' ' << c22;
      return 0;
    }
  }
  if (c12 < n) {
    cout << "? " << 1 << ' ' << c12 + 1 << ' ' << n << ' ' << n << '\n';
    cin >> r;
    if (r) {
      getldrept(1, n, c12 + 1, n);
      cout << "! " << l11 << ' ' << c11 << ' ' << l12 << ' ' << c12;
      cout << ' ' << l21 << ' ' << c21 << ' ' << l22 << ' ' << c22;
      return 0;
    }
  }
}
