#include #define rep(i, a) rep2 (i, 0, a) #define rep2(i, a, b) for (int i = (a); i < (b); i++) #define repr(i, a) repr2 (i, 0, a) #define repr2(i, a, b) for (int i = (b) - 1; i >= (a); i--) using namespace std; typedef long long ll; int main() { int N, M; cin >> N >> M; vector> es; rep (i, N) { int l, r; cin >> l >> r; es.emplace_back(l, i); es.emplace_back(r, i + N * 2); es.emplace_back(M - 1 - r, i + N); es.emplace_back(M - 1 - l, i + N * 3); } sort(es.begin(), es.end()); set s; set used; rep (i, es.size()) { int id = es[i].second % N; if (es[i].second < N * 2) { if (s.size() == 0 && used.count(id) == 0) { s.insert(id); used.insert(id); } } else { if (used.count(id)) { s.erase(id); } } } if (used.size() == N) { cout << "YES" << endl; } else { cout << "NO" << endl; } return 0; }