#include <bits/stdc++.h>
using namespace std;
int main() {
  ios::sync_with_stdio(false);
  int n;
  cin >> n;
  int l = 1, r = n;
  int x11 = -1;
  while (l <= r) {
    int mid = (l + r) / 2;
    cout << "? " << mid << ' ' << 1 << ' ' << n << ' ' << n << '\n';
    fflush(stdout);
    int cnt;
    cin >> cnt;
    if (cnt == 2) {
      x11 = max(x11, mid);
      l = mid + 1;
    } else {
      r = mid - 1;
    }
  }
  l = 1, r = n;
  int x21 = -1;
  while (l <= r) {
    int mid = (l + r) / 2;
    cout << "? " << mid << ' ' << 1 << ' ' << n << ' ' << n << '\n';
    fflush(stdout);
    int cnt;
    cin >> cnt;
    if (cnt >= 1) {
      x21 = max(x21, mid);
      l = mid + 1;
    } else {
      r = mid - 1;
    }
  }
  l = 1, r = n;
  int y21 = -1;
  while (l <= r) {
    int mid = (l + r) / 2;
    cout << "? " << x21 << ' ' << mid << ' ' << n << ' ' << n << '\n';
    fflush(stdout);
    int cnt;
    cin >> cnt;
    if (cnt >= 1) {
      y21 = max(y21, mid);
      l = mid + 1;
    } else {
      r = mid - 1;
    }
  }
  int y11 = -1;
  int c;
  cout << "? " << x11 << ' ' << y21 << ' ' << n << ' ' << n << '\n';
  fflush(stdout);
  cin >> c;
  if (c == 1) {
    l = 1, r = n;
    while (l <= r) {
      int mid = (l + r) / 2;
      cout << "? " << x11 << ' ' << mid << ' ' << n << ' ' << n << '\n';
      fflush(stdout);
      int cnt;
      cin >> cnt;
      if (cnt == 2) {
        y11 = max(y11, mid);
        l = mid + 1;
      } else {
        r = mid - 1;
      }
    }
  } else {
    l = 1, r = n;
    while (l <= r) {
      int mid = (l + r) / 2;
      cout << "? " << x11 << ' ' << mid << ' ' << n << ' ' << n << '\n';
      fflush(stdout);
      int cnt;
      cin >> cnt;
      if (cnt >= 1) {
        y11 = max(y11, mid);
        l = mid + 1;
      } else {
        r = mid - 1;
      }
    }
  }
  int x22 = 1e9;
  l = x21, r = n;
  while (l <= r) {
    int mid = (l + r) / 2;
    cout << "? " << x21 << ' ' << y21 << ' ' << mid << ' ' << n << '\n';
    fflush(stdout);
    int cnt;
    cin >> cnt;
    if (cnt >= 1) {
      x22 = min(x22, mid);
      r = mid - 1;
    } else {
      l = mid + 1;
    }
  }
  int y22 = 1e9;
  l = y21, r = n;
  while (l <= r) {
    int mid = (l + r) / 2;
    cout << "? " << x21 << ' ' << y21 << ' ' << x22 << ' ' << mid << '\n';
    fflush(stdout);
    int cnt;
    cin >> cnt;
    if (cnt >= 1) {
      y22 = min(y22, mid);
      r = mid - 1;
    } else {
      l = mid + 1;
    }
  }
  int x12 = 1e9;
  l = x11, r = n;
  if (y21 <= y11 && y11 <= y22) {
    r = x21 - 1;
  }
  while (l <= r) {
    int mid = (l + r) / 2;
    cout << "? " << x11 << ' ' << y11 << ' ' << mid << ' '
         << ((mid < x21 || y11 > y22) ? n : (y22 - 1)) << '\n';
    fflush(stdout);
    int cnt;
    cin >> cnt;
    if (cnt >= 1) {
      x12 = min(x12, mid);
      r = mid - 1;
    } else {
      l = mid + 1;
    }
  }
  int y12 = 1e9;
  l = y11, r = n;
  while (l <= r) {
    int mid = (l + r) / 2;
    cout << "? " << x11 << ' ' << y11 << ' ' << x12 << ' ' << mid << '\n';
    fflush(stdout);
    int cnt;
    cin >> cnt;
    if (cnt >= 1) {
      y12 = min(y12, mid);
      r = mid - 1;
    } else {
      l = mid + 1;
    }
  }
  cout << "! " << x11 << ' ' << y11 << ' ' << x12 << ' ' << y12 << ' ';
  cout << x21 << ' ' << y21 << ' ' << x22 << ' ' << y22 << '\n';
  fflush(stdout);
  return 0;
}
