#include <bits/stdc++.h>
using namespace std;
int X[10], Y[10], x, y, n, t;
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; ++i) {
    printf("? %d %d %d %d\n", i, 1, i, n);
    fflush(stdout);
    scanf("%d", &t);
    if (t & 1) X[++x] = i;
  }
  for (int i = 1; i <= n; ++i) {
    printf("? %d %d %d %d\n", 1, i, n, i);
    fflush(stdout);
    scanf("%d", &t);
    if (t & 1) Y[++y] = i;
  }
  if (x + y == 4) {
    printf("? %d %d %d %d\n", X[1], Y[1], X[1], Y[1]);
    fflush(stdout);
    scanf("%d", &t);
    if (t & 1) {
      printf("! %d %d %d %d\n", X[1], Y[1], X[2], Y[2]);
      fflush(stdout);
      return 0;
    } else {
      printf("! %d %d %d %d\n", X[1], Y[2], X[2], Y[1]);
      fflush(stdout);
      return 0;
    }
  } else {
    if (x == 2) {
      printf("? %d %d %d %d\n", 1, 1, X[1], 1);
      fflush(stdout);
      scanf("%d", &t);
      if (t & 1) {
        printf("! %d %d %d %d\n", X[1], 1, X[2], 1);
        fflush(stdout);
        return 0;
      }
      int L = 1, R = n;
      while (L + 1 < R) {
        int Mid = L + R >> 1;
        printf("? %d %d %d %d\n", 1, 1, X[1], Mid);
        fflush(stdout);
        scanf("%d", &t);
        if (t & 1)
          R = Mid;
        else
          L = Mid;
      }
      printf("! %d %d %d %d\n", X[1], R, X[2], R);
      fflush(stdout);
      return 0;
    } else {
      printf("? %d %d %d %d\n", 1, 1, 1, Y[1]);
      fflush(stdout);
      scanf("%d", &t);
      if (t & 1) {
        printf("! %d %d %d %d\n", 1, Y[1], 1, Y[2]);
        fflush(stdout);
        return 0;
      }
      int L = 1, R = n;
      while (L + 1 < R) {
        int Mid = L + R >> 1;
        printf("? %d %d %d %d\n", 1, 1, Mid, Y[1]);
        fflush(stdout);
        scanf("%d", &t);
        if (t & 1)
          R = Mid;
        else
          L = Mid;
      }
      printf("! %d %d %d %d\n", R, Y[1], R, Y[2]);
      fflush(stdout);
      return 0;
    }
  }
  return 0;
}
