#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e3;
int n;
bool sp;
int qry(int x1, int y1, int x2, int y2) {
  if (sp) {
    swap(x1, y1);
    swap(x2, y2);
  }
  cout << "? " << x1 + 1 << " " << y1 + 1 << " " << x2 + 1 << " " << y2 + 1
       << endl;
  int a;
  cin >> a;
  return a & 1;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(NULL);
  cin >> n;
  for (int it = 0; it < 2; ++it) {
    int i1 = -1, i2 = -1, s = 0;
    for (int i = 0; i < n - 1; ++i) {
      int a = qry(i, 0, i, n - 1);
      if (a) {
        if (~i1)
          i2 = i;
        else
          i1 = i;
      }
      s ^= a;
    }
    if (s) i2 = n - 1;
    if (~i1) {
      int lb = 0, rb = n - 1;
      while (lb < rb) {
        int mb = (lb + rb) / 2;
        if (qry(i1, 0, i1, mb))
          rb = mb;
        else
          lb = mb + 1;
      }
      int a1 = lb;
      lb = 0, rb = n - 1;
      while (lb < rb) {
        int mb = (lb + rb) / 2;
        if (qry(i2, 0, i2, mb))
          rb = mb;
        else
          lb = mb + 1;
      }
      int a2 = lb;
      if (sp) {
        swap(i1, a1);
        swap(i2, a2);
      }
      cout << "! " << i1 + 1 << " " << a1 + 1 << " " << i2 + 1 << " " << a2 + 1
           << endl;
      break;
    }
    sp = true;
  }
  return 0;
}
