#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> PI;
PI sec[200010];
priority_queue<int,vector<int>,greater<int> > R;
int N,M;
vector<int> rs,chair;
bool check(int mid){
	chair.clear();
	rs.clear();
	while(!R.empty()) R.pop();
	for(int i=0;i<mid;i++)
		chair.push_back(0);
	for(int i=1;i<=M;i++){
		chair.push_back(i);
	}
	reverse(chair.begin(),chair.end());
	for(int i=0;i<N;i++){
		if(chair.size()==0) return false;
		int l=sec[i].first,r=sec[i].second;
		R.push(r);
		if(chair.back()<=l){
			chair.pop_back();
			continue;
		}
		rs.push_back(R.top());
		R.pop();
	}
	sort(rs.begin(),rs.end());
	reverse(chair.begin(),chair.end());
	size_t idx=0;
	for(int r:rs){
		while(idx<chair.size() && chair[idx]<r) idx++;
		if(idx==chair.size()) return false;
		idx++;
	}
	return true;
}
int main(){
	int l,r;
	scanf("%d%d",&N,&M);
	for(int i=0;i<N;i++){
		scanf("%d%d",&l,&r);
		sec[i]=PI(l,r);
	}
	sort(sec,sec+N);
	l=0,r=N;
	while(l!=r){
		int mid=(l+r)>>1;
		if(check(mid)) r=mid;
		else l=mid+1;
	}
	printf("%d\n",r);
	return 0;
}