/*#include<bits/stdc++.h>
using namespace std;
int kolko(long long masiv[][2],long long n,long long i){
    long long broi=0;
    for(long long j=0;j<n;j++){
        if(masiv[j][0]<=i && masiv[j][1]>=i+1){
            broi++;
        }
    }
    return broi;
}
int main(){
long long n;
long long nachalo=-1,krai=-1;
long long koord[50005][2];
cin>>n;
for(long long i=0;i<n;i++){
    cin>>koord[i][0]>>koord[i][1];
    if(i==0){
        nachalo=koord[i][0];
        krai=koord[i][1];
    }else{
        if(nachalo>koord[i][0]){
            nachalo=koord[i][0];
        }
        if(krai<koord[i][1]){
            krai=koord[i][1];
        }
    }
}
long long maks=0,br=0,sega;
for(long long i=nachalo;i<=krai;i++){
    sega=kolko(koord,n,i);
    if(maks<sega){
        maks=sega;
        br=1;
    }else{
        if(maks==sega){
            br++;
        }
    }
}

/*for(long long i=0;i<n;i++){
    br=1;
    for(long long j=koord[i][0];j<=koord[i][1];j++){
        sega=kolko(koord,n,j);
        if(maks<sega){
            maks=sega;
            br=1;
        }else{
            if(maks==sega){
                br++;
            }
        }
    }
}*
cout<<maks<<endl<<br<<endl;
return 0;
}*/
///vtori nachin
/*#include<bits/stdc++.h>
using namespace std;
long long tochki[10000005];
/*int kolko(long long masiv[][2],long long n,long long i){
    long long broi=0;
    for(long long j=0;j<n;j++){
        if(masiv[j][0]<=i && masiv[j][1]>=i+1){
            broi++;
        }
    }
    return broi;
}*
int main(){
long long n;
long long nachalo=-1,krai=-1;
long long koord[50005][2];
long long maks=0,br=0;
cin>>n;
for(long long i=0;i<n;i++){
    cin>>koord[i][0]>>koord[i][1];
    if(i==0){
        nachalo=koord[i][0];
        krai=koord[i][1];
    }else{
        if(nachalo>koord[i][0]){
            nachalo=koord[i][0];
        }
        if(krai<koord[i][1]){
            krai=koord[i][1];
        }
    }
    for(long long j=koord[i][0];j<koord[i][1];j++){
        tochki[j]++;
        if(tochki[j]>maks){
            maks=tochki[j];
            br=1;
        }else{
            if(tochki[j]==maks){
                br++;
            }
        }
    }
    /*for(int h=0;h<koord[i][1];h++){
        cout<<tochki[h]<<" ";
    }
    cout<<endl<<endl;*/
//}
/*for(long long i=0;i<n;i++){
    cout<<koord[i][0]<<" "<<koord[i][1];
}
cout<<nachalo<<" "<<krai<<endl;*/
//for(long long i=0;i<n;i++){
//    for(long long j=koord[i][0];j<koord[i][1];j++){
//        tochki[nachalo+j-1]++;
//    }
    /*for(int i=0;i<krai-nachalo;i++){
        cout<<tochki[nachalo+i]<<" ";
    }
    cout<<endl;*/
//}


/*for(int i=nachalo;i<krai-nachalo+1;i++){
    cout<<tochki[i]<<endl;
}*/



//sort(tochki,tochki+krai-nachalo);
//reverse(tochki,tochki+krai-nachalo);
//cout<<krai-nachalo<<endl<<endl;
/*for(int i=0;i<krai-nachalo;i++){
    cout<<tochki[i]<<endl;
}*/
//long long YesNo=0;
//long long br=0;
/*cout<<tochki[0]<<endl;
for(long long i=1;i<krai-nachalo+1;i++){
    if(tochki[i]==tochki[i-1]){
        br++;
    }else{
        YesNo=1;
    }
}*



//cout<<br<<endl;
cout<<maks<<endl<<br<<endl;
return 0;
}*/


///treti nachin
#include<bits/stdc++.h>
using namespace std;
long long tochki[10000005];
int main(){
cin.tie(0);
cout.tie(0);
long long n;
//long long koord[50005][2];
long long first,second;
long long maks=0,br=0;
cin>>n;
for(long long i=0;i<n;i++){
    cin>>first>>second;
    //cin>>koord[i][0]>>koord[i][1];
    for(long long j=first;j<second;j++){
        tochki[j]++;
        if(tochki[j]>maks){
            maks=tochki[j];
            br=1;
        }else{
            if(tochki[j]==maks){
                br++;
            }
        }
    }
    /*for(int h=0;h<koord[i][1];h++){
        cout<<tochki[h]<<" ";
    }
    cout<<endl<<endl;*/
}
/*for(long long i=0;i<n;i++){
    cout<<koord[i][0]<<" "<<koord[i][1];
}
cout<<nachalo<<" "<<krai<<endl;*/
cout<<maks<<endl<<br<<endl;
return 0;
}
