#include <algorithm> #include <vector> #include <cfloat> #include <string> #include <cmath> #include <set> #include <cstdlib> #include <map> #include <ctime> #include <iomanip> #include <functional> #include <deque> #include <iostream> #include <cstring> #include <queue> #include <cstdio> #include <stack> #include <climits> #include <sys/time.h> #include <cctype> using namespace std; typedef long long ll; int main() { int n, m; cin >> n >> m; int memo[m]; memset(memo, 0, sizeof(memo)); for (int i = 0; i < n; i++) { int l, r; cin >> l >> r; for (int j = l; j <= r; j++) { memo[j]++; } } for (int i = 0; i < m; i++) { if (memo[i] > 2) { puts("NO"); return 0; }else if (memo[i] == 2) { memo[i] = 1; memo[m-1-i]++; } } for (int i = 0; i < m; i++) { if (memo[i] > 1) { puts("NO"); return 0; } } puts("YES"); }