#include <bits/stdc++.h>
using namespace std;
const int N = 200010;
vector<int> t[N];
int t1[N];
priority_queue<int> q;
int main() {
  int n, m;
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= n; i++) {
    int l, r;
    scanf("%d%d", &l, &r);
    t[l].push_back(r);
  }
  for (int i = m; i; i--) {
    if (t[i].size())
      for (int j = 0; j <= t[i].size() - 1; j++) q.push(t[i][j]);
    if (!q.empty()) q.pop();
  }
  if (t[0].size())
    for (int j = 0; j <= t[0].size() - 1; j++) q.push(t[0][j]);
  while (!q.empty()) {
    t1[q.top()]++;
    q.pop();
  }
  int cnt = 0;
  for (int i = 1; i <= m; i++) {
    cnt += t1[i];
    if (cnt >= 1) cnt--;
  }
  cnt += t1[m + 1];
  printf("%d\n", cnt);
  return 0;
}
