#include <bits/stdc++.h>
using namespace std;
int N, M;
vector<pair<int, int> > A;
int main() {
  cin.tie(0);
  ios_base::sync_with_stdio(0);
  cin >> N >> M;
  for (int i = 0; i < N; i++) {
    int l, r;
    cin >> l >> r;
    A.emplace_back(l, r);
  }
  sort(A.begin(), A.end());
  set<int> st;
  for (int i = 1; i <= M; i++) st.insert(i);
  int ans = N;
  for (int i = 0; i < N; i++) {
    if (st.empty()) break;
    auto it = st.lower_bound(A[i].second);
    if (it != st.end()) {
      st.erase(it);
      --ans;
    } else if (*st.begin() <= A[i].first)
      st.erase(st.begin()), --ans;
  }
  cout << ans;
}
