#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");
}