#include<bits/stdc++.h>
using namespace std;
const int N = 5010;
int n;
struct nb{
int l,r;
}f[N];
bool cmp(nb&a,nb&b){
return a.l<b.l;
}
int main()
{
cin>>n;
for(int i=0;i<n;i++){
int a,b;
cin>>a>>b;
f[i]={a,b};
}
sort(f,f+n,cmp);
int st=f[0].l,ed=f[0].r;
int maxn=ed-st,minn=0;
for(int i=1;i<n;i++){
if(ed>=f[i].l){
if(ed>=f[i].r)
maxn=max(maxn,ed-st+1);
else
maxn=max(maxn,f[i].r-st),ed=f[i].r;
}else{
minn=max(minn,f[i].l-ed);
st=f[i].l;
ed=f[i].r;
}
}
cout<<maxn<<" "<<minn;
return 0;
}