#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int N;
long L;
vector<pair<long,long> >A,B;
int a,b;
int main()
{
	cin>>N>>L;
	for(int i=0;i<N;i++)
	{
		long l,r;cin>>l>>r;
		A.push_back(make_pair(l,1));
		A.push_back(make_pair(r,-1));
		B.push_back(make_pair(l,r));
	}
	sort(A.begin(),A.end());
	sort(B.begin(),B.end());
	long r=0;
	long q=0;
	for(pair<long,long>p:B)
	{
		if(r<p.first)
		{
			r=q;
			a++;
		}
		q=max(q,p.second);
	}
	a+=r<L;
	r=0;
	b=N;
	long pre=0;
	for(pair<long,long>p:A)
	{
		if(pre!=p.first)b=min(b,(int)r);
		pre=p.first;
		if(p.second==-1)r--;
		else r++;
	}
	cout<<a<<" "<<N-b+1<<endl;
}

