#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]++;
add[A+1+Y]--;
//加夾子寬度
}
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(now==ansN){
ansC++;
}
}
cout<<ansC<<" "<<ansN<<"\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTWF4Tj0zZTQ7CmNvbnN0IGludCBNYXhZPTNlNDsKY29uc3QgaW50IE1heFA9MWU1OwppbnQgTixZLEEsQjsKaW50IGFkZFsxMzAwMDJdOwppbnQgbWFpbigpIHsKCXdoaWxlKGNpbj4+Tj4+WSl7CgkJZm9yKGludCBwPTA7cDw9TWF4UCtZKzE7cCsrKQoJCQlhZGRbcF09MDsKCQlmb3IoaW50IG49MDtuPE47bisrKXsKCQkJY2luPj5BPj5COwoJCQlpZihCLUE+WSkKCQkJCWNvbnRpbnVlOyAKCQkJYWRkW0JdKys7CgkJCWFkZFtBKzErWV0tLTsKCQkJLy/liqDlpL7lrZDlr6zluqYKCQl9CgkJaW50IG5vdz0wOwoJCWZvcihpbnQgcD0wO3A8PVk7cCsrKQoJCQlub3crPWFkZFtwXTsKCQlpbnQgYW5zQz0wOwoJCWludCBhbnNOPW5vdzsKCQlmb3IoaW50IHA9WSsxO3A8PU1heFArMStZO3ArKyl7CgkJCW5vdys9YWRkW3BdOwoJCQlpZihub3c+YW5zTil7CgkJCQlhbnNOPW5vdzsKCQkJCWFuc0M9MTsKCQkJfWVsc2UgaWYobm93PT1hbnNOKXsKCQkJCWFuc0MrKzsKCQkJfQoJCX0KCQljb3V0PDxhbnNDPDwiICI8PGFuc048PCJcbiI7Cgl9CglyZXR1cm4gMDsKfQ==