#include <bits/stdc++.h>
using namespace std;
const int MaxN=3e4;
const int MaxY=3e4;
const int MaxP=1e5;
int N,Y,A,B;
int add[130002];
int main() {
while(cin>>N>>Y){
for(int p=0; p<=MaxP+Y+1;p++)
add[p]=0;
for(int n=0;n<N;n++){
cin>>A>>B;
if(B-A>Y)//無論夾子在哪都夾不起來
continue;
add[B]+=1;
add[A+1+Y]-=1;
}
int now=0;
for(int p=0;p<=Y;p++)
now+=add[p];
int ansC=0;
int ansN=now;
for(int p=Y+1;p<=MaxP+1+Y;p++){
now+=add[p];
if(now>ansN){
ansN=now;
ansC=1;
}else if(ansN==now){
ansC+=1;
}
}
cout<<ansC<<" "<<ansN<<endl;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTWF4Tj0zZTQ7CmNvbnN0IGludCBNYXhZPTNlNDsKY29uc3QgaW50IE1heFA9MWU1OwoKaW50IE4sWSxBLEI7CmludCBhZGRbMTMwMDAyXTsKaW50IG1haW4oKSB7Cgl3aGlsZShjaW4+Pk4+PlkpewoJCWZvcihpbnQgcD0wOyBwPD1NYXhQK1krMTtwKyspCgkJICBhZGRbcF09MDsKCQlmb3IoaW50IG49MDtuPE47bisrKXsKCQkJY2luPj5BPj5COwoJCQlpZihCLUE+WSkvL+eEoeirluWkvuWtkOWcqOWTqumDveWkvuS4jei1t+S+hgoJCQkgIGNvbnRpbnVlOwoJCQlhZGRbQl0rPTE7CgkJCWFkZFtBKzErWV0tPTE7CgkJfQoJCWludCBub3c9MDsKCQlmb3IoaW50IHA9MDtwPD1ZO3ArKykKCQkgIG5vdys9YWRkW3BdOwoJCWludCBhbnNDPTA7CgkJaW50IGFuc049bm93OwoJCWZvcihpbnQgcD1ZKzE7cDw9TWF4UCsxK1k7cCsrKXsKCQkJbm93Kz1hZGRbcF07CgkJCWlmKG5vdz5hbnNOKXsKCQkJCWFuc049bm93OwoJCQkJYW5zQz0xOwoJCQl9ZWxzZSBpZihhbnNOPT1ub3cpewoJCQkJYW5zQys9MTsKCQkJfQoJCX0KCQljb3V0PDxhbnNDPDwiICI8PGFuc048PGVuZGw7Cgl9Cn0=