#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:400000000")
using namespace std;
int ask(int x1, int y1, int x2, int y2) {
  printf("? %d %d %d %d\n", x1, y1, x2, y2);
  fflush(stdout);
  int res;
  scanf("%d", &res);
  return res;
}
void bs(int* a, int pos, int L, int R) {
  while (abs(R - L) > 1) {
    int M = (L + R) / 2;
    a[pos] = M;
    if (ask(a[0], a[1], a[2], a[3]) == 1)
      R = M;
    else
      L = M;
  }
  a[pos] = R;
}
void go(int* a) {
  bs(a, 0, a[2] + 1, a[0]);
  bs(a, 1, a[3] + 1, a[1]);
  bs(a, 2, a[0] - 1, a[2]);
  bs(a, 3, a[1] - 1, a[3]);
}
int a[4];
int b[4];
int main() {
  int n;
  scanf("%d", &n);
  int L, R;
  L = 0, R = n;
  while (R - L > 1) {
    int M = (L + R) / 2;
    if (ask(1, 1, M, n) == 0)
      L = M;
    else
      R = M;
  }
  int x2 = R;
  L = 0, R = n;
  while (R - L > 1) {
    int M = (L + R) / 2;
    if (ask(1, 1, n, M) == 0)
      L = M;
    else
      R = M;
  }
  int y2 = R;
  if (ask(1, 1, x2, n) == 1 && ask(x2 + 1, 1, n, n) == 1) {
    a[0] = 1;
    a[1] = 1;
    a[2] = x2;
    a[3] = n;
    go(a);
    b[0] = x2 + 1;
    b[1] = 1;
    b[2] = n;
    b[3] = n;
    go(b);
    printf("!");
    for (int i = 0; i < 4; ++i) printf(" %d", a[i]);
    for (int i = 0; i < 4; ++i) printf(" %d", b[i]);
    printf("\n");
    fflush(stdout);
  } else {
    a[0] = 1;
    a[1] = 1;
    a[2] = n;
    a[3] = y2;
    go(a);
    b[0] = 1;
    b[1] = y2 + 1;
    b[2] = n;
    b[3] = n;
    go(b);
    printf("!");
    for (int i = 0; i < 4; ++i) printf(" %d", a[i]);
    for (int i = 0; i < 4; ++i) printf(" %d", b[i]);
    printf("\n");
    fflush(stdout);
  }
  return 0;
}
