#include <bits/stdc++.h>
using namespace std;
const int INF = 1e9 + 10;
int n;
int get_response(int x1, int y1, int x2, int y2) {
  cout << "? " << x1 << ' ' << y1 << ' ' << x2 << ' ' << y2 << endl;
  int x;
  cin >> x;
  return x;
}
struct rect {
  int x1, y1, x2, y2;
  rect(int x1_, int y1_, int x2_, int y2_) {
    x1 = x1_, x2 = x2_, y1 = y1_, y2 = y2_;
  }
  void print() { cout << x1 << ' ' << y1 << ' ' << x2 << ' ' << y2 << ' '; }
};
rect YeAlameBinarySearch(int x1, int y1, int x2, int y2) {
  int L, R;
  L = x1, R = x2;
  while (L != R) {
    int mid = L + R + 1 >> 1;
    int x = get_response(mid, y1, x2, y2);
    if (x)
      L = mid;
    else
      R = mid - 1;
  }
  x1 = L;
  L = x1, R = x2;
  while (L != R) {
    int mid = L + R >> 1;
    int x = get_response(x1, y1, mid, y2);
    if (x)
      R = mid;
    else
      L = mid + 1;
  }
  x2 = L;
  L = y1, R = y2;
  while (L != R) {
    int mid = L + R + 1 >> 1;
    int x = get_response(x1, mid, x2, y2);
    if (x)
      L = mid;
    else
      R = mid - 1;
  }
  y1 = L;
  L = y1, R = y2;
  while (L != R) {
    int mid = L + R >> 1;
    int x = get_response(x1, y1, x2, mid);
    if (x)
      R = mid;
    else
      L = mid + 1;
  }
  y2 = L;
  return rect(x1, y1, x2, y2);
}
void BAZAM_BINARYSEARCH() {
  int L = 1, R = n;
  while (L != R) {
    int mid = L + R >> 1;
    int x = get_response(1, 1, n, mid);
    if (x == 0)
      L = mid + 1;
    else
      R = mid;
  }
  if (get_response(1, 1, n, L) == 1 && get_response(1, L + 1, n, n) == 1) {
    rect a = YeAlameBinarySearch(1, 1, n, L);
    rect b = YeAlameBinarySearch(1, L + 1, n, n);
    cout << "! ";
    a.print();
    b.print();
    cout << endl;
  } else {
    L = 1, R = n;
    while (L != R) {
      int mid = L + R >> 1;
      int x = get_response(1, 1, mid, n);
      if (x == 0)
        L = mid + 1;
      else
        R = mid;
    }
    rect a = YeAlameBinarySearch(1, 1, L, n);
    rect b = YeAlameBinarySearch(L + 1, 1, n, n);
    cout << "! ";
    a.print();
    b.print();
    cout << endl;
  }
}
int main() {
  cin >> n;
  BAZAM_BINARYSEARCH();
  return 0;
}
