#include <bits/stdc++.h>
using namespace std;
int n;
int work(int o) {
  int L = 1;
  int R = n;
  while (L < R) {
    int mid = (L + R) >> 1;
    printf("? 1 1 %d %d\n", mid, n);
    fflush(stdout);
    int ans = 0;
    scanf("%d", &ans);
    if (ans >= o) {
      R = mid;
    } else {
      L = mid + 1;
    }
  }
  return L;
}
int work2(int o) {
  int L = 1;
  int R = n;
  while (L < R) {
    int mid = (L + R) >> 1;
    mid++;
    printf("? %d 1 %d %d\n", mid, n, n);
    fflush(stdout);
    int ans = 0;
    scanf("%d", &ans);
    if (ans < o) {
      R = mid - 1;
    } else {
      L = mid;
    }
  }
  return L;
}
int work3(int o) {
  int L = 1;
  int R = n;
  while (L < R) {
    int mid = (L + R) >> 1;
    printf("? 1 1 %d %d\n", n, mid);
    fflush(stdout);
    int ans = 0;
    scanf("%d", &ans);
    if (ans >= o) {
      R = mid;
    } else {
      L = mid + 1;
    }
  }
  return L;
}
int work4(int o) {
  int L = 1;
  int R = n;
  while (L < R) {
    int mid = (L + R) >> 1;
    mid++;
    printf("? 1 %d %d %d\n", mid, n, n);
    fflush(stdout);
    int ans = 0;
    scanf("%d", &ans);
    if (ans < o) {
      R = mid - 1;
    } else {
      L = mid;
    }
  }
  return L;
}
int main() {
  scanf("%d", &n);
  int R1 = work(1);
  int R2 = work(2);
  int L2 = work2(1);
  int L1 = work2(2);
  int U1 = work3(1);
  int U2 = work3(2);
  int D1 = work4(2);
  int D2 = work4(1);
  int tem = 0;
  if (L2 <= R1) {
    printf("? %d 1 %d %d\n", L2, R1, n);
    fflush(stdout);
    tem = 0;
    scanf("%d", &tem);
    if (tem > 0) {
      swap(L1, L2);
    }
  }
  if (D2 <= U1) {
    printf("? 1 %d %d %d\n", D2, n, U1);
    fflush(stdout);
    tem = 0;
    scanf("%d", &tem);
    if (tem > 0) {
      swap(U1, U2);
    }
  }
  printf("? %d %d %d %d\n", L1, D1, R1, U1);
  tem = 0;
  fflush(stdout);
  scanf("%d", &tem);
  printf("? %d %d %d %d\n", L2, D2, R2, U2);
  fflush(stdout);
  int tem2 = 0;
  scanf("%d", &tem2);
  if (tem && tem2) {
    printf("! %d %d %d %d %d %d %d %d\n", L1, D1, R1, U1, L2, D2, R2, U2);
  } else {
    printf("! %d %d %d %d %d %d %d %d\n", L2, D1, R2, U1, L1, D2, R1, U2);
  }
  fflush(stdout);
  return 0;
}
