#include <bits/stdc++.h>
using namespace std;
int n;
vector<int> col, row;
int query(int ax, int ay, int bx, int by) {
  if (ax > bx) swap(ax, bx);
  if (ay > by) swap(ay, by);
  cout << "? " << ax << " " << ay << " " << bx << " " << by << endl;
  cin >> ax;
  return ax;
}
void solve() {
  cin >> n;
  int f = 1;
  for (int i = n - 1; i >= 1; i--) {
    int w = query(1, 1, n, i);
    if (w % 2 == f) col.push_back(i + 1), f ^= 1;
  }
  if (f == 0) col.push_back(1), f = 1;
  for (int i = n - 1; i >= 1; i--) {
    int w = query(1, 1, i, n);
    if (w % 2 == f) row.push_back(i + 1), f ^= 1;
  }
  if (f == 0) row.push_back(1), f = 1;
  sort((row).begin(), (row).end());
  sort((col).begin(), (col).end());
  if ((int)row.size() == 2 and (int) col.size() == 2) {
    if (query(row[0], col[0], row[0], col[0]) % 2 and
        query(row[1], col[1], row[1], col[1]) % 2) {
      cout << "! " << row[0] << " " << col[0] << " " << row[1] << " " << col[1]
           << endl;
    } else {
      cout << "! " << row[0] << " " << col[1] << " " << row[1] << " " << col[0]
           << endl;
    }
  } else if ((int)row.size() == 2) {
    int lo = 1, hi = n;
    while (hi - lo > 1) {
      int mid = (lo + hi) / 2;
      if (query(row[0], 1, row[0], mid) % 2)
        hi = mid;
      else
        lo = mid;
    }
    if (query(row[0], 1, row[0], lo) % 2)
      col.push_back(lo);
    else if (query(row[0], 1, row[0], hi))
      col.push_back(hi);
    cout << "! " << row[0] << " " << col[0] << " " << row[1] << " " << col[0]
         << endl;
  } else if ((int)col.size() == 2) {
    int lo = 1, hi = n;
    while (hi - lo > 1) {
      int mid = (lo + hi) / 2;
      if (query(1, col[0], mid, col[0]) % 2)
        hi = mid;
      else
        lo = mid;
    }
    if (query(1, col[0], lo, col[0]) % 2)
      row.push_back(lo);
    else if (query(1, col[0], hi, col[0]))
      row.push_back(hi);
    cout << "! " << row[0] << " " << col[0] << " " << row[0] << " " << col[1]
         << endl;
  }
}
signed main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int t = 1;
  while (t--) {
    solve();
  }
  return 0;
}
