#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int> P; #define F first #define S second int main(){ int n; cin>>n; P p[n][2]; map<P,vector<P> > m; for(int i=0;i<n;i++){ cin>>p[i][0].F>>p[i][0].S>>p[i][1].F>>p[i][1].S; m[p[i][0]].push_back(P(i,0)); m[p[i][1]].push_back(P(i,1)); } bool u[n],f=1; memset(u,0,sizeof(u)); for(int i=0;i<n;i++){ //if(u[i]) continue; bool ff=0; for(int j=0;j<2;j++){ bool v[n],w[n],fff=1; memset(v,0,sizeof(v)); memset(w,0,sizeof(w)); w[i]=j; queue<int> q; q.push(i); while(!q.empty()){ int x=q.front();q.pop(); if(v[x]) continue; v[x]=1; for(int k=0;k<(int)m[p[x][w[x]]].size();k++){ P np=m[p[x][w[x]]][k]; if(np.F==x) continue; if(v[np.F]){ if(w[np.F]==np.S) fff=0; }else{ w[np.F]=!np.S; } q.push(np.F); } } //for(int k=0;k<n;k++) u[k]|=v[k]; ff|=fff; } f&=ff; //cout<<i<<" "<<f<<endl; } cout<<(f?"YES":"NO")<<endl; return 0; }