#include <bits/stdc++.h>
using namespace std;
const int N = 301000;
const int M = 610000;
const int inf = 0x3f3f3f3f;
const int mod = 1000000007;
void MOD(long long &a) {
  if (a >= mod) a -= mod;
}
void ADD(long long &a, long long b) {
  a += b;
  MOD(a);
}
long long qpow(long long a, long long b) {
  long long ans = 1;
  while (b) {
    if (b & 1) ans = ans * a % mod;
    a = a * a % mod;
    b /= 2;
  }
  return ans;
}
long long qpow(long long a, long long b, long long c) {
  long long ans = 1;
  while (b) {
    if (b & 1) ans = ans * a % c;
    a = a * a % c;
    b /= 2;
  }
  return ans;
}
int n, a = -1, b = -1, c = -1, d = -1;
pair<int, int> ans1 = {-1, -1}, ans2 = {-1, -1};
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) {
    printf("? %d %d %d %d\n", i, 1, i, n);
    fflush(stdout);
    int x;
    scanf("%d", &x);
    if (x % 2 == 0) continue;
    if (a == -1)
      a = i;
    else
      b = i;
  }
  for (int i = 1; i <= n; i++) {
    printf("? %d %d %d %d\n", 1, i, n, i);
    fflush(stdout);
    int x;
    scanf("%d", &x);
    if (x % 2 == 0) continue;
    if (c == -1)
      c = i;
    else
      d = i;
  }
  if (a != -1 && b != -1 && d != -1 && c != -1) {
    printf("? %d %d %d %d\n", a, c, a, c);
    fflush(stdout);
    int x;
    scanf("%d", &x);
    if (x % 2) {
      if (ans1.first == -1)
        ans1 = {a, c};
      else
        ans2 = {a, c};
    }
    printf("? %d %d %d %d\n", a, d, a, d);
    fflush(stdout);
    scanf("%d", &x);
    if (x % 2) {
      if (ans1.first == -1)
        ans1 = {a, d};
      else
        ans2 = {a, d};
    }
    printf("? %d %d %d %d\n", b, c, b, c);
    fflush(stdout);
    scanf("%d", &x);
    if (x % 2) {
      if (ans1.first == -1)
        ans1 = {b, c};
      else
        ans2 = {b, c};
    }
    printf("? %d %d %d %d\n", b, d, b, d);
    fflush(stdout);
    scanf("%d", &x);
    if (x % 2) {
      if (ans1.first == -1)
        ans1 = {b, d};
      else
        ans2 = {b, d};
    }
    printf("! %d %d %d %d\n", ans1.first, ans1.second, ans2.first, ans2.second);
  } else if (a == -1 && b == -1) {
    int l = 0, r = n;
    while (l + 1 < r) {
      int m = l + r >> 1;
      printf("? %d %d %d %d\n", 1, c, m, c);
      fflush(stdout);
      int x;
      scanf("%d", &x);
      if (x % 2)
        r = m;
      else
        l = m;
    }
    printf("! %d %d %d %d\n", r, c, r, d);
  } else {
    int l = 0, r = n;
    while (l + 1 < r) {
      int m = l + r >> 1;
      printf("? %d %d %d %d\n", a, 1, a, m);
      fflush(stdout);
      int x;
      scanf("%d", &x);
      if (x % 2)
        r = m;
      else
        l = m;
    }
    printf("! %d %d %d %d\n", a, r, b, r);
  }
}
