CSES - Shared codeLink to this code: https://cses.fi/paste/ea80a134fa00a6a1283507/
#include <bits/stdc++.h>
using namespace std;

#define ms(s,n) memset(s,n,sizeof(s))
#define all(a) a.begin(),a.end()
#define present(t, x) (t.find(x) != t.end())
#define sz(a) int((a).size())
#define FOR(i, a, b) for (int i = (a); i < (b); ++i)
#define FORd(i, a, b) for (int i = (a) - 1; i >= (b); --i)
#define pb push_back
#define pf push_front
#define fi first
#define se second
#define mp make_pair

typedef long long ll;
typedef unsigned long long ull;
typedef long double ld;
typedef pair<int,int> pi;
typedef vector<int> vi;
typedef vector<pi> vii;

const int MOD = (int) 1e9+7;
const int INF = (int) 1e9+1;
inline ll gcd(ll a,ll b){ll r;while(b){r=a%b;a=b;b=r;}return a;}
inline ll lcm(ll a,ll b){return a/gcd(a,b)*b;}

bool cmp(pi a, pi b){
	return a.se < b.se;
}


int main(){
	#ifndef ONLINE_JUDGE
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w", stdout);
	#endif
	int n, k; cin >> n >> k;
	vii a(n);
	FOR(i, 0, n){
		cin >> a[i].fi >> a[i].se;
	}
	sort(all(a), cmp);
	multiset<int> ms;
	int ans =1;
	ms.insert(a[0].se);
	for(int i = 1; i < n; i++){
		//Đi tìm bộ phim đang được xem bởi 1 trong các thành viên
		//có thời gian kết thúc <= thời gian bắt đầu của bộ phim hiện tại
		auto it = ms.upper_bound(a[i].fi);
		//Nếu hiện vẫn còn người chưa xem phim ta cho người đó xem phim này
		if(it == ms.begin() && sz(ms) < k){
			ms.insert(a[i].se);
			++ans;
		}
		//Nếu cả k người đã đang xem phim và tồn tại 1 bộ phim có thời gian
		//kết thúc <= thời gian bắt đầu của phim hiện tại thì ta chọn
		//bộ phim có thời gian kết thúc thỏa mãn nhỏ hơn thời gian bắt đầu của bộ hiện
		//tại và lớn nhất có thể, để dành những phim có kết thúc sớm hơn
		//cho các phim sau
		else if(it != ms.begin()){
			--it;
			ms.erase(it);
			ms.insert(a[i].se);
			++ans;
		}
	}
	cout << ans << endl;
	return 0;
}