#include #include #include #include //#include #include #include #include #include #include //#include #include #include #include //#include #include #include //#include #include #include #include #include const int dx[] = {1, 0, -1, 0}; const int dy[] = {0, 1, 0, -1}; using namespace std; typedef long long ll; typedef vector vi; typedef vector vll; typedef pair pii; const int MAXN = 111; pii from[MAXN], to[MAXN]; int cnt[MAXN][MAXN]; int main() { cin.tie(0); ios::sync_with_stdio(false); int N; cin >> N; assert(1 <= N && N <= 100); for (int i = 0; i < N; i++) { cin >> from[i].first >> from[i].second >> to[i].first >> to[i].second; assert(1 <= from[i].first && from[i].first <= 100); assert(1 <= from[i].second && from[i].second <= 100); assert(1 <= to[i].first && to[i].first <= 100); assert(1 <= to[i].second && to[i].second <= 100); assert(abs(to[i].first-from[i].first) + abs(to[i].second-from[i].second) == 1); } for (int i = 0; i < N; i++) for (int j = i+1; j < N; j++) { assert(!(from[i] == from[j] && to[i] == to[j])); } for (int s = 0; s < (1<>i)&1) { cnt[from[i].first][from[i].second]++; } else { cnt[to[i].first][to[i].second]++; } } bool ng = false; for (int i = 0; i < MAXN; i++) for (int j = 0; j < MAXN; j++) { if (cnt[i][j] > 1) { ng = true; break; } } if (!ng) { cout << "YES" << endl; return 0; } } cout << "NO" << endl; return 0; }