#include <bits/stdc++.h>
using namespace std;
int get_num(int x1, int y1, int x2, int y2) {
  printf("? %d %d %d %d\n", x1, y1, x2, y2);
  fflush(stdout);
  int x;
  scanf("%d", &x);
  return x;
}
int main() {
  int n;
  scanf("%d", &n);
  int x1 = -1, y1 = -1, x2 = -1, y2 = -1;
  for (int i = 1; i <= n; i++) {
    int x = get_num(i, 1, i, n);
    if (x % 2) {
      if (x1 == -1)
        x1 = i;
      else
        x2 = i;
    }
  }
  for (int i = 1; i <= n; i++) {
    int x = get_num(1, i, n, i);
    if (x % 2) {
      if (y1 == -1)
        y1 = i;
      else
        y2 = i;
    }
  }
  if (x1 != -1 && y1 != -1) {
    int sx = -1, sy = -1, dx = -1, dy = -1;
    int x = get_num(x1, y1, x1, y1);
    if (x % 2) {
      if (sx == -1)
        sx = x1, sy = y1;
      else
        dx = x1, dy = y1;
    }
    x = get_num(x1, y2, x1, y2);
    if (x % 2) {
      if (sx == -1)
        sx = x1, sy = y2;
      else
        dx = x1, dy = y2;
    }
    x = get_num(x2, y1, x2, y1);
    if (x % 2) {
      if (sx == -1)
        sx = x2, sy = y1;
      else
        dx = x2, dy = y1;
    }
    x = get_num(x2, y2, x2, y2);
    if (x % 2) {
      if (sx == -1)
        sx = x2, sy = y2;
      else
        dx = x2, dy = y2;
    }
    printf("! %d %d %d %d\n", sx, sy, dx, dy);
    fflush(stdout);
  } else if (x1 == -1) {
    int l = 1, r = n, ans = 1;
    while (l <= r) {
      int mid = (l + r) / 2;
      int x = get_num(1, y1, mid, y1);
      if (x % 2)
        ans = mid, r = mid - 1;
      else
        l = mid + 1;
    }
    printf("! %d %d %d %d\n", ans, y1, ans, y2);
    fflush(stdout);
  } else {
    int l = 1, r = n, ans = 1;
    while (l <= r) {
      int mid = (l + r) / 2;
      int x = get_num(x1, 1, x1, mid);
      if (x % 2)
        ans = mid, r = mid - 1;
      else
        l = mid + 1;
    }
    printf("! %d %d %d %d\n", x1, ans, x2, ans);
    fflush(stdout);
  }
}
