#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  cin >> n;
  int x1, x2, y1, y2;
  x1 = y1 = 1;
  x2 = y2 = n;
  int high, low, cc;
  high = n;
  low = 1;
  cc = 0;
  while (low <= high) {
    int mid = (high + low + 1) / 2;
    printf("? %d %d %d %d\n", mid, y1, x2, y2);
    fflush(stdout);
    int an;
    cin >> an;
    if (an > 0) {
      low = mid;
      x1 = mid;
    } else
      high = mid - 1;
    cc++;
    if (cc == 24) break;
  }
  high = n;
  low = 1;
  cc = 0;
  while (low <= high) {
    int mid = (high + low + 1) / 2;
    printf("? %d %d %d %d\n", x1, mid, x2, y2);
    fflush(stdout);
    int an;
    cin >> an;
    if (an > 0) {
      low = mid;
      y1 = mid;
    } else
      high = mid - 1;
    cc++;
    if (cc == 24) break;
  }
  high = n;
  low = x1;
  cc = 0;
  while (low <= high) {
    int mid = (high + low) / 2;
    printf("? %d %d %d %d\n", x1, y1, mid, y2);
    fflush(stdout);
    int an;
    cin >> an;
    if (an > 0) {
      high = mid;
      x2 = mid;
    } else
      low = mid + 1;
    cc++;
    if (cc == 24) break;
  }
  high = n;
  low = y1;
  cc = 0;
  while (low <= high) {
    int mid = (high + low) / 2;
    printf("? %d %d %d %d\n", x1, y1, x2, mid);
    fflush(stdout);
    int an;
    cin >> an;
    if (an > 0) {
      high = mid;
      y2 = mid;
    } else
      low = mid + 1;
    cc++;
    if (cc == 24) break;
  }
  int xx1, xx2, yy1, yy2;
  xx1 = yy1 = 1;
  xx2 = yy2 = n;
  high = n;
  low = 1;
  cc = 0;
  while (low <= high) {
    int mid = (high + low + 1) / 2;
    printf("? %d %d %d %d\n", mid, yy1, xx2, yy2);
    fflush(stdout);
    int an;
    cin >> an;
    if (x1 >= mid && y1 >= yy1 && x2 <= xx2 && y2 <= yy2) an--;
    if (an > 0) {
      low = mid;
      xx1 = mid;
    } else
      high = mid - 1;
    cc++;
    if (cc == 24) break;
  }
  high = n;
  low = 1;
  cc = 0;
  while (low <= high) {
    int mid = (high + low + 1) / 2;
    printf("? %d %d %d %d\n", xx1, mid, xx2, yy2);
    fflush(stdout);
    int an;
    cin >> an;
    if (x1 >= xx1 && y1 >= mid && x2 <= xx2 && y2 <= yy2) an--;
    if (an > 0) {
      low = mid;
      yy1 = mid;
    } else
      high = mid - 1;
    cc++;
    if (cc == 24) break;
  }
  high = n;
  low = xx1;
  cc = 0;
  while (low <= high) {
    int mid = (high + low) / 2;
    printf("? %d %d %d %d\n", xx1, yy1, mid, yy2);
    fflush(stdout);
    int an;
    cin >> an;
    if (x1 >= xx1 && y1 >= yy1 && x2 <= mid && y2 <= yy2) an--;
    if (an > 0) {
      high = mid;
      xx2 = mid;
    } else
      low = mid + 1;
    cc++;
    if (cc == 24) break;
  }
  high = n;
  low = yy1;
  cc = 0;
  while (low <= high) {
    int mid = (high + low) / 2;
    printf("? %d %d %d %d\n", xx1, yy1, xx2, mid);
    fflush(stdout);
    int an;
    cin >> an;
    if (x1 >= xx1 && y1 >= yy1 && x2 <= xx2 && y2 <= mid) an--;
    if (an > 0) {
      high = mid;
      yy2 = mid;
    } else
      low = mid + 1;
    cc++;
    if (cc == 24) break;
  }
  printf("! %d %d %d %d %d %d %d %d\n", x1, y1, x2, y2, xx1, yy1, xx2, yy2);
  fflush(stdout);
  return 0;
}
