#include <bits/stdc++.h>
using namespace std;
const long long MAXN = 100100;
const long long INF = 2000000100;
const long long MOD = 998244353;
int N;
int cst[MAXN][2][2];
bool sortx(int a, int b) { return cst[a][0][0] < cst[b][0][0]; }
bool sorty(int a, int b) { return cst[a][0][1] < cst[b][0][1]; }
bool findans(vector<int> a) {
  if ((int)a.size() == 1) return true;
  for (int t = 0; t <= 1; t++) {
    if (t == 0)
      sort(a.begin(), a.end(), sortx);
    else
      sort(a.begin(), a.end(), sorty);
    int m = cst[a[0]][1][t];
    for (int i = 1; i < (int)a.size(); i++) {
      if (cst[a[i]][0][t] >= m) {
        vector<int> b1, b2;
        for (int k = 0; k < i; k++) b1.push_back(a[k]);
        for (int k = i; k < (int)a.size(); k++) b2.push_back(a[k]);
        return findans(b1) & findans(b2);
      }
      m = max(m, cst[a[i]][1][t]);
    }
  }
  return false;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin >> N;
  vector<int> s;
  for (int i = 0; i < N; i++) {
    cin >> cst[i][0][0] >> cst[i][0][1] >> cst[i][1][0] >> cst[i][1][1];
    s.push_back(i);
  }
  cout << (findans(s) ? "YES\n" : "NO\n");
}
