#include <bits/stdc++.h>
using namespace std;
int ll[2][2], lr[2][2], n, l, r, mid, ans, tests;
bool tff;
void start() {
  ll[0][0] = 1;
  lr[0][0] = 1;
  ll[0][1] = n;
  lr[0][1] = n;
  ll[1][0] = 1;
  lr[1][0] = 1;
  ll[1][1] = n;
  lr[1][1] = n;
  tff = false;
}
int read(int l1, int l2, int r1, int r2) {
  cout << '?' << ' ' << l1 << ' ' << l2 << ' ' << r1 << ' ' << r2 << endl;
  cout.flush();
  int x;
  cin >> x;
  if ((tff) && ((l1 <= ll[0][0]) && (l2 <= ll[0][1]) && (r1 >= lr[0][0]) &&
                (r2 >= lr[0][1]))) {
    x--;
  }
  return (x);
}
int main() {
  cin >> n;
  start;
  l = 1;
  r = n;
  while (l < r) {
    mid = (l + r) / 2;
    ans = read(1, 1, n, mid);
    if (ans > 0)
      r = mid;
    else
      l = mid + 1;
  }
  lr[0][1] = r;
  l = 1;
  while (l < r) {
    mid = (l + r + 1) / 2;
    ans = read(1, mid, n, lr[0][1]);
    if (ans > 0)
      l = mid;
    else
      r = mid - 1;
  }
  ll[0][1] = l;
  l = 1;
  r = n;
  while (l < r) {
    mid = (l + r) / 2;
    ans = read(1, ll[0][1], mid, lr[0][1]);
    if (ans > 0)
      r = mid;
    else
      l = mid + 1;
  }
  lr[0][0] = r;
  l = 1;
  while (l < r) {
    mid = (l + r + 1) / 2;
    ans = read(mid, ll[0][1], lr[0][0], lr[0][1]);
    if (ans > 0)
      l = mid;
    else
      r = mid - 1;
  }
  ll[0][0] = l;
  tff = true;
  l = 1;
  r = n;
  while (l < r) {
    mid = (l + r) / 2;
    ans = read(1, 1, n, mid);
    if (ans > 0)
      r = mid;
    else
      l = mid + 1;
  }
  lr[1][1] = r;
  l = 1;
  while (l < r) {
    mid = (l + r + 1) / 2;
    ans = read(1, mid, n, lr[1][1]);
    if (ans > 0)
      l = mid;
    else
      r = mid - 1;
  }
  ll[1][1] = l;
  l = 1;
  r = n;
  while (l < r) {
    mid = (l + r) / 2;
    ans = read(1, ll[1][1], mid, lr[1][1]);
    if (ans > 0)
      r = mid;
    else
      l = mid + 1;
  }
  lr[1][0] = r;
  l = 1;
  while (l < r) {
    mid = (l + r + 1) / 2;
    ans = read(mid, ll[1][1], lr[1][0], lr[1][1]);
    if (ans > 0)
      l = mid;
    else
      r = mid - 1;
  }
  ll[1][0] = l;
  cout << "! " << ll[1][0] << ' ' << ll[1][1] << ' ' << lr[1][0] << ' '
       << lr[1][1] << ' ' << ll[0][0] << ' ' << ll[0][1] << ' ' << lr[0][0]
       << ' ' << lr[0][1] << endl;
}
