#include <bits/stdc++.h>
using namespace std;
int n;
vector<int> v;
vector<pair<int, int> > ans;
void go(bool flag) {
  if (!flag) {
    for (auto col : v) {
      int lo = 0, hi = n;
      while (hi - lo > 1) {
        int mid = (hi + lo) / 2;
        cout << "? " << 1 << ' ' << col << ' ' << mid << ' ' << col << endl;
        int x;
        cin >> x;
        if (x == -1) exit(0);
        if (x % 2)
          hi = mid;
        else
          lo = mid;
      }
      ans.push_back({hi, col});
    }
  } else {
    for (auto row : v) {
      int lo = 0, hi = n;
      while (hi - lo > 1) {
        int mid = (hi + lo) / 2;
        cout << "? " << row << ' ' << 1 << ' ' << row << ' ' << mid << endl;
        int x;
        cin >> x;
        if (x == -1) exit(0);
        if (x % 2)
          hi = mid;
        else
          lo = mid;
      }
      ans.push_back({row, hi});
    }
  }
  cout << "! ";
  for (auto xx : ans) cout << xx.first << ' ' << xx.second << ' ';
  cout << endl;
  exit(0);
}
int main() {
  int i, j;
  cin >> n;
  cerr << "n = " << n << endl;
  if (n == -1) return 0;
  for (i = 1; i < n; i++) {
    cerr << "? " << 1 << ' ' << i << ' ' << n << ' ' << i << endl;
    cout << "? " << 1 << ' ' << i << ' ' << n << ' ' << i << endl;
    int x;
    cin >> x;
    cerr << "res = " << x << endl;
    if (x == -1) return 0;
    if (x % 2) {
      v.push_back(i);
    }
  }
  if (v.size()) {
    if (v.size() == 1) v.push_back(n);
    go(0);
  } else {
    for (i = 1; i < n; i++) {
      cerr << "? " << i << ' ' << 1 << ' ' << i << ' ' << n << endl;
      cout << "? " << i << ' ' << 1 << ' ' << i << ' ' << n << endl;
      int x;
      cin >> x;
      cerr << "res = " << x << endl;
      if (x == -1) return 0;
      if (x % 2) {
        v.push_back(i);
      }
    }
    if (v.size() == 1) v.push_back(n);
    go(1);
  }
  return 0;
}
