#include <bits/stdc++.h>
int main() {
  int n;
  char s[2];
  while (scanf("%d", &n) != EOF) {
    int subx, infx, suby, infy;
    infx = infy = 1;
    subx = suby = n;
    int a = 1, b = n, c;
    a--;
    b++;
    while (b - a > 1) {
      c = (a + b) >> 1;
      printf("? %d %d %d %d\n", infx, infy, c, suby);
      fflush(stdout);
      if (scanf("%s", s) && s[0] == '2')
        b = c;
      else
        a = c;
    }
    subx = b;
    a = 1;
    b = subx;
    a--;
    b++;
    while (b - a > 1) {
      c = (a + b) >> 1;
      printf("? %d %d %d %d\n", c, infy, subx, suby);
      fflush(stdout);
      if (scanf("%s", s) && s[0] == '2')
        a = c;
      else
        b = c;
    }
    infx = a;
    a = 1;
    b = n;
    a--;
    b++;
    while (b - a > 1) {
      c = (a + b) >> 1;
      printf("? %d %d %d %d\n", infx, infy, subx, c);
      fflush(stdout);
      if (scanf("%s", s) && s[0] == '2')
        b = c;
      else
        a = c;
    }
    suby = b;
    a = 1;
    b = suby;
    a--;
    b++;
    while (b - a > 1) {
      c = (a + b) >> 1;
      printf("? %d %d %d %d\n", infx, c, subx, suby);
      fflush(stdout);
      if (scanf("%s", s) && s[0] == '2')
        a = c;
      else
        b = c;
    }
    infy = a;
    int infx1, subx1, infx2, subx2, infy1, suby1, infy2, suby2;
    bool flag = 0;
    if (subx == infx) flag = 1;
    if (!flag) {
      printf("? %d %d %d %d\n", infx, infy, subx - 1, suby);
      fflush(stdout);
      if (scanf("%s", s) && s[0] == '0') flag = 1;
    }
    if (!flag) {
      printf("? %d %d %d %d\n", infx + 1, infy, subx, suby);
      fflush(stdout);
      if (scanf("%s", s) && s[0] == '0') flag = 1;
    }
    if (!flag && subx - infx > 1) {
      printf("? %d %d %d %d\n", infx + 1, infy, subx - 1, suby);
      fflush(stdout);
      if (scanf("%s", s) && s[0] == '1') flag = 1;
    }
    if (flag) {
      infy1 = infy;
      a = infy;
      b = suby;
      a--;
      b++;
      while (b - a > 1) {
        c = (a + b) >> 1;
        printf("? %d %d %d %d\n", infx, infy1, subx, c);
        fflush(stdout);
        if (scanf("%s", s) && s[0] == '0')
          a = c;
        else
          b = c;
      }
      suby1 = b;
      a = infx;
      b = subx;
      a--;
      b++;
      while (b - a > 1) {
        c = (a + b) >> 1;
        printf("? %d %d %d %d\n", infx, infy1, c, suby1);
        fflush(stdout);
        if (scanf("%s", s) && s[0] == '0')
          a = c;
        else
          b = c;
      }
      subx1 = b;
      a = infx;
      a--;
      b++;
      while (b - a > 1) {
        c = (a + b) >> 1;
        printf("? %d %d %d %d\n", c, infy1, subx1, suby1);
        fflush(stdout);
        if (scanf("%s", s) && s[0] == '0')
          b = c;
        else
          a = c;
      }
      infx1 = a;
      suby2 = suby;
      a = infy;
      b = suby;
      a--;
      b++;
      while (b - a > 1) {
        c = (a + b) >> 1;
        printf("? %d %d %d %d\n", infx, c, subx, suby2);
        fflush(stdout);
        if (scanf("%s", s) && s[0] == '0')
          b = c;
        else
          a = c;
      }
      infy2 = a;
      a = infx;
      b = subx;
      a--;
      b++;
      while (b - a > 1) {
        c = (a + b) >> 1;
        printf("? %d %d %d %d\n", infx, infy2, c, suby2);
        fflush(stdout);
        if (scanf("%s", s) && s[0] == '0')
          a = c;
        else
          b = c;
      }
      subx2 = b;
      a = infx;
      a--;
      b++;
      while (b - a > 1) {
        c = (a + b) >> 1;
        printf("? %d %d %d %d\n", c, infy2, subx2, suby2);
        fflush(stdout);
        if (scanf("%s", s) && s[0] == '0')
          b = c;
        else
          a = c;
      }
      infx2 = a;
    } else {
      infx1 = infx;
      a = infx;
      b = subx;
      a--;
      b++;
      while (b - a > 1) {
        c = (a + b) >> 1;
        printf("? %d %d %d %d\n", infx1, infy, c, suby);
        fflush(stdout);
        if (scanf("%s", s) && s[0] == '0')
          a = c;
        else
          b = c;
      }
      subx1 = b;
      a = infy;
      b = suby;
      a--;
      b++;
      while (b - a > 1) {
        c = (a + b) >> 1;
        printf("? %d %d %d %d\n", infx1, infy, subx1, c);
        fflush(stdout);
        if (scanf("%s", s) && s[0] == '0')
          a = c;
        else
          b = c;
      }
      suby1 = b;
      a = infy;
      a--;
      b++;
      while (b - a > 1) {
        c = (a + b) >> 1;
        printf("? %d %d %d %d\n", infx1, c, subx1, suby1);
        fflush(stdout);
        if (scanf("%s", s) && s[0] == '0')
          b = c;
        else
          a = c;
      }
      infy1 = a;
      subx2 = subx;
      a = infx;
      b = subx;
      a--;
      b++;
      while (b - a > 1) {
        c = (a + b) >> 1;
        printf("? %d %d %d %d\n", c, infy, subx2, suby);
        fflush(stdout);
        if (scanf("%s", s) && s[0] == '0')
          b = c;
        else
          a = c;
      }
      infx2 = a;
      a = infy;
      b = suby;
      a--;
      b++;
      while (b - a > 1) {
        c = (a + b) >> 1;
        printf("? %d %d %d %d\n", infx2, infy, subx2, c);
        fflush(stdout);
        if (scanf("%s", s) && s[0] == '0')
          a = c;
        else
          b = c;
      }
      suby2 = b;
      a = infy;
      a--;
      b++;
      while (b - a > 1) {
        c = (a + b) >> 1;
        printf("? %d %d %d %d\n", infx2, c, subx2, suby2);
        fflush(stdout);
        if (scanf("%s", s) && s[0] == '0')
          b = c;
        else
          a = c;
      }
      infy2 = a;
    }
    printf("! %d %d %d %d %d %d %d %d\n", infx1, infy1, subx1, suby1, infx2,
           infy2, subx2, suby2);
    fflush(stdout);
  }
  return 0;
}
