#include <bits/stdc++.h>
using namespace std;
const int XL1 = 2, XR1 = 2, YL1 = 2, YR1 = 2, XL2 = 3, XR2 = 3, YL2 = 4,
          YR2 = 5;
int n;
int check(int xl, int xr, int yl, int yr) {
  cout << "? " << xl << " " << yl << " " << xr << " " << yr << "\n";
  fflush(stdout);
  int x = 0;
  cin >> x;
  return x;
}
void make(int &x21, int &x22, int &y21, int &y22, int a1, int a2, int a3,
          int a4) {
  if (a2)
    for (int i = 1 << 16; i != 0; i >>= 1) {
      if (x22 - i < x21) continue;
      if (check(x21, x22 - i, y21, y22) > 0) x22 -= i;
    }
  if (a4)
    for (int i = 1 << 16; i != 0; i >>= 1) {
      if (y22 - i < y21) continue;
      if (check(x21, x22, y21, y22 - i) > 0) y22 -= i;
    }
  if (a3)
    for (int i = 1 << 16; i != 0; i >>= 1) {
      if (y21 + i > y22) continue;
      if (check(x21, x22, y21 + i, y22) > 0) y21 += i;
    }
  if (a1)
    for (int i = 1 << 16; i != 0; i >>= 1) {
      if (x21 + i > x22) continue;
      if (check(x21 + i, x22, y21, y22) > 0) x21 += i;
    }
  if (!a2)
    for (int i = 1 << 16; i != 0; i >>= 1) {
      if (x22 - i < x21) continue;
      if (check(x21, x22 - i, y21, y22) > 0) x22 -= i;
    }
  if (!a4)
    for (int i = 1 << 16; i != 0; i >>= 1) {
      if (y22 - i < y21) continue;
      if (check(x21, x22, y21, y22 - i) > 0) y22 -= i;
    }
  if (!a3)
    for (int i = 1 << 16; i != 0; i >>= 1) {
      if (y21 + i > y22) continue;
      if (check(x21, x22, y21 + i, y22) > 0) y21 += i;
    }
  if (!a1)
    for (int i = 1 << 16; i != 0; i >>= 1) {
      if (x21 + i > x22) continue;
      if (check(x21 + i, x22, y21, y22) > 0) x21 += i;
    }
}
int main() {
  cin >> n;
  int xl = 1, yl = 1, xr = n, yr = n;
  for (int i = 1 << 16; i != 0; i >>= 1) {
    if (i + xl > xr) continue;
    if (check(xl + i, xr, yl, yr) == 2) xl += i;
  }
  for (int i = 1 << 16; i != 0; i >>= 1) {
    if (xr - i < xl) continue;
    if (check(xl, xr - i, yl, yr) == 2) xr -= i;
  }
  for (int i = 1 << 16; i != 0; i >>= 1) {
    if (i + yl > yr) continue;
    if (check(xl, xr, yl + i, yr) == 2) yl += i;
  }
  for (int i = 1 << 16; i != 0; i >>= 1) {
    if (yr - i < yl) continue;
    if (check(xl, xr, yl, yr - i) == 2) yr -= i;
  }
  int x11 = xl, y11 = yl, x12 = xr, y12 = yr, x21 = xl, y21 = yl, x22 = xr,
      y22 = yr;
  for (int i = 1 << 16; i != 0; i >>= 1) {
    if (x12 - i < x11) continue;
    if (check(x11, x12 - i, y11, y12) > 0) x12 -= i;
  }
  for (int i = 1 << 16; i != 0; i >>= 1) {
    if (y12 - i < y11) continue;
    if (check(x11, x12, y11, y12 - i) > 0) y12 -= i;
  }
  for (int i = 1 << 16; i != 0; i >>= 1) {
    if (y11 + i > y12) continue;
    if (check(x11, x12, y11 + i, y12) > 0) y11 += i;
  }
  for (int i = 1 << 16; i != 0; i >>= 1) {
    if (x11 + i > x12) continue;
    if (check(x11 + i, x12, y11, y12) > 0) x11 += i;
  }
  make(x21, x22, y21, y22, x11 == xl, x12 == xr, y11 == yl, y12 == yr);
  cout << "! " << x11 << " " << y11 << " " << x12 << " " << y12 << " " << x21
       << " " << y21 << " " << x22 << " " << y22 << "\n";
  fflush(stdout);
  return 0;
}
