#include <bits/stdc++.h>
using namespace std;
int a[] = {2, 2, 2, 2};
int b[] = {2, 2, 2, 2};
int c[] = {3, 3, 3, 3};
int d[] = {4, 4, 5, 5};
int deg(int x1, int y1, int x2, int y2) {
  int ret = 0;
  for (int i = 0; i < 4; i++) {
    if (x1 <= a[i] && a[i] <= x2 && y1 <= b[i] && b[i] <= y2) {
      ;
    } else {
      break;
    }
    if (i == 3) {
      ret++;
    }
  }
  for (int i = 0; i < 4; i++) {
    if (x1 <= c[i] && c[i] <= x2 && y1 <= d[i] && d[i] <= y2) {
      ;
    } else {
      break;
    }
    if (i == 3) {
      ret++;
    }
  }
  return ret;
}
int n;
int check(int x1, int y1, int x2, int y2) {
  if (x1 < 1 || x2 < 1 || y1 < 1 || y2 < 1 || x1 > n || x2 > n || y1 > n ||
      y2 > n) {
    cout << "sss" << endl;
  }
  printf("? %d %d %d %d\n", x1, y1, x2, y2);
  int ret = 0;
  fflush(stdout);
  scanf("%d", &ret);
  return ret;
}
void ok(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4) {
  if (x1 <= x2 && y1 <= y2 && x3 <= x4 && y3 <= y4) {
    if (check(x1, y1, x2, y2) == 1 && check(x3, y3, x4, y4) == 1) {
      printf("! %d %d %d %d %d %d %d %d\n", x1, y1, x2, y2, x3, y3, x4, y4);
    }
  }
}
int main() {
  cin >> n;
  int low = 1, hig = n, sign = 0, mid;
  int x1, x2, x3, x4, y1, y2, y3, y4;
  while (low <= hig) {
    mid = low + hig >> 1;
    if (check(1, 1, n, mid) <= 0)
      low = mid + 1;
    else
      hig = mid - 1;
  }
  y2 = hig + 1;
  low = 1;
  hig = n;
  while (low <= hig) {
    mid = low + hig >> 1;
    if (check(1, 1, n, mid) <= 1)
      low = mid + 1;
    else
      hig = mid - 1;
  }
  y4 = hig + 1;
  low = 1, hig = n;
  while (low <= hig) {
    mid = low + hig >> 1;
    if (check(1, mid, n, n) > 1)
      low = mid + 1;
    else
      hig = mid - 1;
  }
  y1 = hig;
  low = 1, hig = n;
  while (low <= hig) {
    mid = low + hig >> 1;
    if (check(1, mid, n, n) > 0)
      low = mid + 1;
    else
      hig = mid - 1;
  }
  y3 = hig;
  low = 1, hig = n;
  while (low <= hig) {
    mid = low + hig >> 1;
    if (check(mid, 1, n, n) > 0)
      low = mid + 1;
    else
      hig = mid - 1;
  }
  x3 = hig;
  low = 1, hig = n;
  while (low <= hig) {
    mid = low + hig >> 1;
    if (check(mid, 1, n, n) > 1)
      low = mid + 1;
    else
      hig = mid - 1;
  }
  x1 = hig;
  low = 1, hig = n;
  while (low <= hig) {
    mid = low + hig >> 1;
    if (check(1, 1, mid, n) <= 0)
      low = mid + 1;
    else
      hig = mid - 1;
  }
  x2 = hig + 1;
  low = 1, hig = n;
  while (low <= hig) {
    mid = low + hig >> 1;
    if (check(1, 1, mid, n) <= 1)
      low = mid + 1;
    else
      hig = mid - 1;
  }
  x4 = hig + 1;
  ok(x1, y1, x2, y4, x3, y3, x4, y2);
  ok(x1, y1, x2, y2, x3, y3, x4, y4);
  ok(x1, y3, x2, y2, x3, y1, x4, y4);
  ok(x1, y3, x2, y4, x3, y1, x4, y2);
  ok(x1, y1, x4, y4, x3, y3, x2, y2);
  ok(x1, y1, x4, y2, x3, y3, x2, y4);
  ok(x1, y3, x4, y2, x3, y1, x2, y4);
  ok(x1, y3, x4, y4, x3, y1, x2, y2);
}
