#include <bits/stdc++.h>
using namespace std;
int n, res, x11, y11, x12, y12, x21, y21, x22, y22;
int main() {
  scanf("%d", &n);
  y11 = 1, y12 = n, x11 = 1;
  int l = 1, r = n, ans = n;
  while (l <= r) {
    x12 = (l + r) >> 1;
    printf("? %d %d %d %d\n", x11, y11, x12, y12);
    fflush(stdout);
    scanf("%d", &res);
    if (res == 0) {
      l = x12 + 1;
    } else {
      ans = x12;
      r = x12 - 1;
    }
  }
  x12 = ans;
  l = 1, r = x12, ans = 1;
  while (l <= r) {
    x11 = (l + r) >> 1;
    printf("? %d %d %d %d\n", x11, y11, x12, y12);
    fflush(stdout);
    scanf("%d", &res);
    if (res == 0) {
      r = x11 - 1;
    } else {
      ans = x11;
      l = x11 + 1;
    }
  }
  x11 = ans;
  l = 1, r = n, ans = n;
  while (l <= r) {
    y12 = (l + r) >> 1;
    printf("? %d %d %d %d\n", x11, y11, x12, y12);
    fflush(stdout);
    scanf("%d", &res);
    if (res == 0) {
      l = y12 + 1;
    } else {
      ans = y12;
      r = y12 - 1;
    }
  }
  y12 = ans;
  l = 1, r = y12, ans = 1;
  while (l <= r) {
    y11 = (l + r) >> 1;
    printf("? %d %d %d %d\n", x11, y11, x12, y12);
    fflush(stdout);
    scanf("%d", &res);
    if (res == 0) {
      r = y11 - 1;
    } else {
      ans = y11;
      l = y11 + 1;
    }
  }
  y11 = ans;
  x21 = 1, x22 = x11 - 1, y21 = 1, y22 = n;
  if (x21 <= x22) {
    printf("? %d %d %d %d\n", x21, y21, x22, y22);
    fflush(stdout);
    scanf("%d", &res);
  } else {
    res = 0;
  }
  if (!res) {
    x21 = x12 + 1, x22 = n;
    if (x21 <= x22) {
      printf("? %d %d %d %d\n", x21, y21, x22, y22);
      fflush(stdout);
      scanf("%d", &res);
    } else {
      res = 0;
    }
    if (!res) {
      x21 = 1, x22 = n, y21 = y12 + 1, y22 = n;
      if (y21 <= y22) {
        printf("? %d %d %d %d\n", x21, y21, x22, y22);
        fflush(stdout);
        scanf("%d", &res);
      } else {
        res = 0;
      }
      if (!res) {
        y21 = 1, y22 = y11 - 1;
        if (y21 <= y22) {
          printf("? %d %d %d %d\n", x21, y21, x22, y22);
          fflush(stdout);
          scanf("%d", &res);
        } else {
          res = 0;
        }
      }
    }
  }
  l = x21, r = x22, ans = x22;
  while (l <= r) {
    x22 = (l + r) >> 1;
    printf("? %d %d %d %d\n", x21, y21, x22, y22);
    fflush(stdout);
    scanf("%d", &res);
    if (res == 0) {
      l = x22 + 1;
    } else {
      ans = x22;
      r = x22 - 1;
    }
  }
  x22 = ans;
  l = x21, r = x22, ans = x21;
  while (l <= r) {
    x21 = (l + r) >> 1;
    printf("? %d %d %d %d\n", x21, y21, x22, y22);
    fflush(stdout);
    scanf("%d", &res);
    if (res == 0) {
      r = x21 - 1;
    } else {
      ans = x21;
      l = x21 + 1;
    }
  }
  x21 = ans;
  l = y21, r = y22, ans = y22;
  while (l <= r) {
    y22 = (l + r) >> 1;
    printf("? %d %d %d %d\n", x21, y21, x22, y22);
    fflush(stdout);
    scanf("%d", &res);
    if (res == 0) {
      l = y22 + 1;
    } else {
      ans = y22;
      r = y22 - 1;
    }
  }
  y22 = ans;
  l = y21, r = y22, ans = y21;
  while (l <= r) {
    y21 = (l + r) >> 1;
    printf("? %d %d %d %d\n", x21, y21, x22, y22);
    fflush(stdout);
    scanf("%d", &res);
    if (res == 0) {
      r = y21 - 1;
    } else {
      ans = y21;
      l = y21 + 1;
    }
  }
  y21 = ans;
  printf("! %d %d %d %d %d %d %d %d\n", x11, y11, x12, y12, x21, y21, x22, y22);
  fflush(stdout);
  return 0;
}
