#include <bits/stdc++.h>
using namespace std;
long long modpow(long long a, long long b,
                 long long mod = (long long)(1e9 + 7)) {
  if (!b) return 1;
  a %= mod;
  return modpow(a * a % mod, b / 2, mod) * (b & 1 ? a : 1) % mod;
}
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
const int DEBUG = 0;
const int mxn = 1e3;
int q = 0;
int n, m;
vector<int> r, c;
bool swapped = 0;
int ask(int x1, int y1, int x2, int y2, bool stick = 0) {
  if (!stick && swapped) return ask(y1, x1, y2, x2, 1);
  if (q++ == 2019) {
    exit(0);
  }
  cout << "? " << x1 + 1 << " " << y1 + 1 << " " << x2 + 1 << " " << y2 + 1
       << endl;
  fflush(stdin);
  int n;
  cin >> n;
  return n;
}
void declare(int x1, int y1, int x2, int y2, bool stick = 0) {
  if (!stick && swapped) {
    declare(y1, x1, y2, x2, 1);
    return;
  }
  cout << "! " << x1 + 1 << " " << y1 + 1 << " " << x2 + 1 << " " << y2 + 1
       << endl;
  fflush(stdin);
}
void solve() {
  int pcnt = 0;
  for (int i = 0; i < n; i++) {
    int cnt = ask(i, 0, i, m - 1);
    if (i == 0 || i == n - 1) {
      if (cnt % 2) r.push_back(i);
    } else {
      if ((cnt % 2)) r.push_back(i);
    }
  }
  for (int j = 0; j < m; j++) {
    int cnt = ask(0, j, n - 1, j);
    if (j == 0 || j == m - 1) {
      if (cnt % 2) c.push_back(j);
    } else {
      if (cnt % 2) c.push_back(j);
    }
  }
  vector<pair<int, int> > res;
  for (int x : r)
    for (int y : c) {
      if (ask(x, y, x, y) == 1) res.push_back(pair<int, int>(x, y));
    }
  if (!int((res).size())) {
    if (!int((c).size())) {
      swap(r, c);
      swapped = 1;
    }
    int a = c[0], b = c[1];
    int lo = 0, hi = n - 1;
    while (lo <= hi) {
      int mid = (lo + hi) / 2;
      if (ask(0, a, mid, a) % 2)
        hi = mid - 1;
      else
        lo = mid + 1;
    }
    r.push_back(lo);
    for (int x : r)
      for (int y : c) res.push_back(pair<int, int>(x, y));
  }
  declare(res[0].first, res[0].second, res[1].first, res[1].second);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cin >> n;
  m = n;
  solve();
  return 0;
}
