#include <bits/stdc++.h>
using namespace std;
const int MOD = 1000000007;
const long long INF = 1000000000000000000LL;
int ask(int x1, int y1, int x2, int y2) {
  int k;
  cout << "? " << x1 << " " << y1 << " " << x2 << " " << y2 << endl;
  cin >> k;
  return k;
}
int n;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> n;
  vector<int> r, c;
  for (int i = 1; i <= n; ++i) {
    if (ask(i, 1, i, n) % 2 == 1) r.push_back(i);
  }
  for (int i = 1; i <= n; ++i) {
    if (ask(1, i, n, i) % 2 == 1) c.push_back(i);
  }
  if (r.empty()) {
    int lo = 1, hi = n;
    while (lo < hi) {
      int m = (lo + hi) / 2;
      if (ask(lo, c[0], m, c[0]) % 2 == 1)
        hi = m;
      else
        lo = m + 1;
    }
    r.push_back(lo);
  }
  if (c.empty()) {
    int lo = 1, hi = n;
    while (lo < hi) {
      int m = (lo + hi) / 2;
      if (ask(r[0], lo, r[0], m) % 2 == 1)
        hi = m;
      else
        lo = m + 1;
    }
    c.push_back(lo);
  }
  if (r.size() == 1)
    cout << "! " << r[0] << " " << c[0] << " " << r[0] << " " << c[1] << endl;
  if (c.size() == 1)
    cout << "! " << r[0] << " " << c[0] << " " << r[1] << " " << c[0] << endl;
  if (ask(r[0], c[0], r[0], c[0]) % 2 == 1)
    cout << "! " << r[0] << " " << c[0] << " " << r[1] << " " << c[1] << endl;
  else
    cout << "! " << r[1] << " " << c[0] << " " << r[0] << " " << c[1] << endl;
  return 0;
}
