#include using namespace std; #define sd(a) scanf("%d", &a) #define ss(a) scanf("%s", a) #define sl(a) scanf("%lld", &a) #define clr(a) memset(a, 0, sizeof(a)) #define debug(a) printf("check %d\n", a) #define F first #define S second #define PB push_back #define ll long long #define flush() fflush(stdout) #define rep(i,n) for ( int i = 0 ; i < n ; i++ ) typedef vector vi; typedef vector vvi; typedef pair ii; typedef vector vii; typedef vector vvii; struct Point { int x; int y; }; vector points; int orientation(Point p, Point q, Point r) { // See http://www.geeksforgeeks.org/orientation-3-ordered-points/ // for details of below formula. int val = (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y); if (val == 0) return 0; // colinear return (val > 0)? 1: 2; // clock or counterclock wise } int main() { // freopen("input.in", "r", stdin); int n; sd(n); for ( int i = 0 ; i < n ; i++ ) { int x, y; sd(x); sd(y); Point p; p.x = x; p.y = y; points.push_back(p); } bool hori = true, verti = true; for ( int i = 1 ; i < points.size() ; i++ ) { if (points[i].x != points[i-1].x) { verti = false; break; } } for ( int i = 1 ; i < points.size() ; i++ ) { if (points[i].y != points[i-1].y) { hori = false; break; } } if ( verti || hori ) printf("YES"); else printf("NO"); }