#include<bits/stdc++.h>
using namespace std;
const int N = 2e5+1;

typedef pair<int,int> pii;
priority_queue<pii,vector<pii>,greater<pii> > q1;
priority_queue<pii,vector<pii>,greater<pii> > q2;
int n,m;
pii a[N];
int vis[N];
int cnt;

int main(){
   scanf("%d%d",&n,&m);
   for(int i = 1;i <= n; ++i){
      scanf("%d%d",&a[i].first,&a[i].second);
   }
   sort(a+1,a+n+1);
   for(int i = 1;i <= n; ++i){
      if(!a[i].first){
         q2.push(pii(a[i].second,a[i].first));
         continue ;
      }
      if(cnt < a[i].first){
         vis[++cnt] = 1;
         q1.push(pii(a[i].second,a[i].first));
      }
      else {
         if(q1.top().first < a[i].second){
            q2.push(q1.top()); q1.pop();
            q1.push(pii(a[i].second,a[i].first));
         } else {
            q2.push(pii(a[i].second,a[i].first));
         }
      }
   }
   int res = cnt;
   for(int i = cnt+1;i <= m; ++i){
      while(i <= m && !q2.empty() && q2.top().first > i)++i;
      if(i > m || q2.empty())break;
      ++res;
      q2.pop();
   }
   printf("%d\n",n-res);
   return 0;
}
