#include <bits/stdc++.h>
using namespace std;
using LL = long long;
const int N{1 << 18};
void query(int x1, int y1, int x2, int y2) {
  cout << "? " << x1 << ' ' << y1 << ' ' << x2 << ' ' << y2 << endl;
  fflush(stdout);
}
int get_left(int l, int r, int b, int t, int cnt) {
  int res;
  int L = l, R = r, mid;
  for (; R - L > 1;) {
    mid = L + R >> 1;
    query(b, mid, t, r - 1);
    cin >> res;
    if (res >= cnt)
      L = mid;
    else
      R = mid;
  }
  return L;
}
int get_right(int l, int r, int b, int t, int cnt) {
  int res;
  int L = l, R = r, mid;
  for (; R - L > 1;) {
    mid = L + R >> 1;
    query(b, l + 1, t, mid);
    cin >> res;
    if (res >= cnt)
      R = mid;
    else
      L = mid;
  }
  return R;
}
int get_top(int l, int r, int b, int t, int cnt) {
  int res;
  int B = b, T = t;
  for (; T - B > 1;) {
    int mid = B + T >> 1;
    query(b + 1, l, mid, r);
    cin >> res;
    if (res >= cnt)
      T = mid;
    else
      B = mid;
  }
  return T;
}
int get_bottom(int l, int r, int b, int t, int cnt) {
  int res, B = b, T = t;
  for (; T - B > 1;) {
    int mid = B + T >> 1;
    query(mid, l, t - 1, r);
    cin >> res;
    if (res >= cnt)
      B = mid;
    else
      T = mid;
  }
  return B;
}
int p[4][2];
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  int n;
  cin >> n;
  int L = get_left(1, n + 1, 1, n, 2);
  int R = get_right(0, n, 1, n, 2);
  int B = get_bottom(1, n, 1, n + 1, 2);
  int T = get_top(1, n, 0, n, 2);
  int l = get_left(L, R + 1, B, T, 1);
  int r = get_right(L - 1, R, B, T, 1);
  int b = get_bottom(L, R, B, T + 1, 1);
  int t = get_top(L, R, B - 1, T, 1);
  int p[4][2]{B, b, L, l, T, t, R, r};
  int q[4][2];
  for (int i = 0; i < 16; i++) {
    for (int j = 0; j < 4; j++) {
      int x = bool(i & 1 << j);
      q[j][0] = p[j][x], q[j][1] = p[j][1 - x];
    }
    bool f = true;
    for (int i = 0; i < 2; i++) {
      f &= q[0][i] <= q[2][i] && q[1][i] <= q[3][i];
    }
    if (!f) continue;
    int res[2];
    for (int i = 0; i < 2; i++) {
      query(q[0][i], q[1][i], q[2][i], q[3][i]);
      cin >> res[i];
    }
    if (res[0] == 1 && res[1] == 1) {
      cout << "! ";
      for (int i = 0; i < 2; i++)
        for (int j = 0; j < 4; j++) cout << q[j][i] << ' ';
      cout << endl;
      fflush(stdout);
      return 0;
    }
  }
  return 0;
}
