#include <bits/stdc++.h>
using namespace std;
int query(int x1, int y1, int x2, int y2) {
  cout << "? " << x1 << " " << y1 << " " << x2 << " " << y2 << endl;
  fflush(stdout);
  int r;
  cin >> r;
  return r;
}
int x_front(int x1, int y1, int x2, int y2, int lo, int hi, int cnt) {
  while (hi - lo > 1) {
    int mi = (lo + hi) / 2;
    int r = query(mi, y1, x2, y2);
    if (r < cnt)
      hi = mi;
    else
      lo = mi;
  }
  return lo;
}
int x_back(int x1, int y1, int x2, int y2, int lo, int hi, int cnt) {
  while (hi - lo > 1) {
    int mi = (lo + hi) / 2;
    int r = query(x1, y1, mi, y2);
    if (r < cnt)
      lo = mi;
    else
      hi = mi;
  }
  return hi;
}
int y_front(int x1, int y1, int x2, int y2, int lo, int hi, int cnt) {
  while (hi - lo > 1) {
    int mi = (lo + hi) / 2;
    int r = query(x1, mi, x2, y2);
    if (r < cnt)
      hi = mi;
    else
      lo = mi;
  }
  return lo;
}
int y_back(int x1, int y1, int x2, int y2, int lo, int hi, int cnt) {
  while (hi - lo > 1) {
    int mi = (lo + hi) / 2;
    int r = query(x1, y1, x2, mi);
    if (r < cnt)
      lo = mi;
    else
      hi = mi;
  }
  return hi;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  int n;
  cin >> n;
  int t = x_back(1, 1, -1, n, 0, n, 1);
  if (t < n && query(t + 1, 1, n, n) == 1) {
    int x2 = x_back(1, 1, -1, n, 0, n, 1);
    int x1 = x_front(-1, 1, x2, n, 1, x2 + 1, 1);
    int x4 = x_back(1, 1, -1, n, 0, n, 2);
    int x3 = x_front(-1, 1, x4, n, x2 + 1, x4 + 1, 1);
    int y2 = y_back(x1, 1, x2, -1, 0, n, 1);
    int y1 = y_front(x1, -1, x2, y2, 1, y2 + 1, 1);
    int y4 = y_back(x3, 1, x4, -1, 0, n, 1);
    int y3 = y_front(x3, -1, x4, y4, 1, y4 + 1, 1);
    cout << "! " << x1 << " " << y1 << " " << x2 << " " << y2;
    cout << " " << x3 << " " << y3 << " " << x4 << " " << y4 << endl;
  } else {
    int y2 = y_back(1, 1, n, -1, 0, n, 1);
    int y1 = y_front(1, -1, n, y2, 1, y2 + 1, 1);
    int y4 = y_back(1, 1, n, -1, 0, n, 2);
    int y3 = y_front(1, -1, n, y4, y2 + 1, y4 + 1, 1);
    int x2 = x_back(1, y1, -1, y2, 0, n, 1);
    int x1 = x_front(-1, y1, x2, y2, 1, x2 + 1, 1);
    int x4 = x_back(1, y3, -1, y4, 0, n, 1);
    int x3 = x_front(-1, y3, x4, y4, 1, x4 + 1, 1);
    cout << "! " << x1 << " " << y1 << " " << x2 << " " << y2;
    cout << " " << x3 << " " << y3 << " " << x4 << " " << y4 << endl;
  }
  fflush(stdout);
  return 0;
}
