#include <bits/stdc++.h>
using namespace std;
long long n;
long long ask(long long a, long long b, long long c, long long d) {
  long long res;
  cout << "? " << a << " " << b << " " << c << " " << d << endl;
  cout.flush();
  cin >> res;
  return res;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin >> n;
  long long x1 = -1;
  long long x2 = -1;
  long long y1 = -1;
  long long y2 = -1;
  for (int i = 1; i < n; i++) {
    if (ask(i, 1, i, n) % 2 == 1) {
      if (x1 == -1)
        x1 = i;
      else {
        x2 = i;
        break;
      }
    }
  }
  if (x1 == -1) {
    for (int i = 1; i < n; i++) {
      if (ask(1, i, n, i) % 2 == 1) {
        if (y1 == -1)
          y1 = i;
        else {
          y2 = i;
          break;
        }
      }
    }
    if (y2 == -1) y2 = n;
    long long low = 1;
    long long high = n;
    x1 = n;
    while (low <= high) {
      long long mid = (low + high) / 2;
      if (ask(low, y1, mid, y1) % 2 == 1) {
        high = mid - 1;
        x1 = min(x1, mid);
      } else {
        low = mid + 1;
      }
    }
    x2 = x1;
  } else {
    if (x2 == -1) x2 = n;
    long long low = 1;
    long long high = n;
    y1 = n;
    while (low <= high) {
      long long mid = (low + high) / 2;
      if (ask(x1, low, x1, mid) % 2 == 1) {
        y1 = min(y1, mid);
        high = mid - 1;
      } else {
        low = mid + 1;
      }
    }
    low = 1;
    high = n;
    y2 = n;
    while (low <= high) {
      long long mid = (low + high) / 2;
      if (ask(x2, low, x2, mid) % 2 == 1) {
        y2 = min(y2, mid);
        high = mid - 1;
      } else {
        low = mid + 1;
      }
    }
  }
  cout << "! " << x1 << " " << y1 << " " << x2 << " " << y2 << endl;
  cout.flush();
  return 0;
}
