#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  int n, m;
  cin >> n >> m;
  vector<pair<int, int> > lr(n);
  for (auto &pa : lr) cin >> pa.first >> pa.second;
  sort(lr.begin(), lr.end());
  int mx = 0;
  auto f = [&](int piv) {
    int l = 0, r = 0;
    int ix = n - 1;
    priority_queue<int> rs;
    for (int pos = piv; pos-- > (0);) {
      while (ix >= 0 && lr[ix].first >= pos) {
        rs.push(lr[ix].second);
        --ix;
      }
      if (pos == 0) continue;
      if (!rs.empty()) {
        ++l;
        rs.pop();
      }
    }
    for (int pos = m + 1; pos-- > (piv);) {
      while (!rs.empty() && rs.top() > pos) rs.pop();
      if (rs.empty()) break;
      ++r;
      rs.pop();
    }
    mx = max(mx, l + r);
    return pair<int, int>(l, r);
  };
  int lo = 1, hi = m + 2;
  while (lo + 1 < hi) {
    int mi = (lo + hi) / 2;
    pair<int, int> pa = f(mi);
    if (pa.first == mi - 1)
      hi = mi;
    else
      lo = mi;
  }
  f(lo);
  cout << n - mx << endl;
}
