#include <bits/stdc++.h>
using namespace std;
int n;
int x[141234];
int y[141234];
int x2[141234];
int y2[141234];
int u1, u2;
int d1, d2;
int l1, l2;
int r1, r2;
pair<int, int> p[4];
int ok(pair<int, int> &p, int i) {
  if (p.first >= x[i] && p.first <= x2[i] && p.second >= y[i] &&
      p.second <= y2[i]) {
    return 1;
  }
  return 0;
}
int main() {
  while (cin >> n) {
    u1 = u2 = 0x3f3f3f3f;
    r1 = r2 = 0x3f3f3f3f;
    d1 = d2 = -0x3f3f3f3f;
    l1 = l2 = -0x3f3f3f3f;
    int wtf = 0;
    for (int i = 0; i < n; i++) {
      scanf("%d%d%d%d", &x[i], &y[i], &x2[i], &y2[i]);
      if (x[i] > x2[i]) {
        swap(x[i], x2[i]);
        swap(y[i], y2[i]);
        wtf++;
      }
      if (x[i] > l2) {
        l2 = x[i];
        if (l2 > l1) {
          swap(l2, l1);
          wtf--;
        }
      }
      if (y[i] > d2) {
        d2 = y[i];
        if (d2 > d1) {
          swap(d2, d1);
          wtf--;
        }
      }
      if (x2[i] < r2) {
        r2 = x2[i];
        if (r2 < r1) {
          swap(r2, r1);
          wtf++;
        }
      }
      if (y2[i] < u2) {
        u2 = y2[i];
        if (u2 < u1) {
          swap(u2, u1);
          wtf--;
        }
      }
    }
    p[0] = {l1, u1};
    p[1] = {l1, u2};
    p[2] = {l2, u1};
    p[3] = {l2, u2};
    int cp[4] = {};
    for (int i = 0; i < n; i++) {
      for (int j = 0; j < 4; j++) {
        if (ok(p[j], i)) cp[j]++;
      }
    }
    for (int i = 0; i < 4; i++) {
      if (cp[i] >= n - 1) {
        cout << p[i].first << " " << p[i].second << endl;
        break;
      }
    }
  }
  return 0;
}
