#include "bits/stdc++.h" using namespace std; #define FOR(i,j,k) for(int (i)=(j);(i)<(int)(k);++(i)) #define rep(i,j) FOR(i,0,j) #define each(x,y) for(auto &(x):(y)) #define mp make_pair #define mt make_tuple #define all(x) (x).begin(),(x).end() #define debug(x) cout<<#x<<": "<<(x)< pii; typedef vector vi; typedef vector vll; vi G[201]; set fi; vi r0, c0, r1, c1; map p2i; bool ng; int vis[201], cnt[201]; void f(int u, int p) { if(ng)return; vis[u] = 1; each(v, G[u]) if(v != p) { if(vis[v] == 1) { cnt[v]++; if(cnt[v] > 1)ng = true; } if(!vis[v]) { f(v, u); } } vis[u] = 2; } int main(){ ios::sync_with_stdio(false); cin.tie(0); int N; cin >> N; r0 = c0 = r1 = c1 = vi(N); vi X, Y; rep(i, N) { cin >> r0[i] >> c0[i] >> r1[i] >> c1[i]; X.pb(r0[i]); Y.pb(c0[i]); X.pb(r1[i]); Y.pb(c1[i]); } rep(i, 2 * N) { auto p = mp(X[i], Y[i]); if(!p2i.count(p)) { int m = sz(p2i); p2i[p] = m; } } rep(i, N) { pii p = mp(r0[i], c0[i]), q = mp(r1[i], c1[i]); G[p2i[p]].push_back(p2i[q]); G[p2i[q]].push_back(p2i[p]); } int M = sz(p2i); for(int i = 0; i < M; ++i) { MEM(vis, 0); MEM(cnt, 0); f(i, -1); } cout << (ng?"NO":"YES") << endl; }