#9#10未过
都改30+次了死活过不了
#include <bits/stdc++.h>
using namespace std;
struct milk{
long long n,m;
}k[5001];
bool cmp(milk aaa,milk bbb){
return aaa.n <bbb.n;
}
bool ll(long long x,long long y){
return x >y;
}
long long x[10000],y[10000];
long long aa=0,bb=0;
int main() {
long long a;
cin>>a;
for (long long i=0;i<a;i++){
cin>>k[i].n>>k[i].m;
}
sort(k,k+a,cmp);
long long l=k[0].n,f=k[0].m;
for (long long i=0;i<a-1;i++){
if(k[i].m+1>=k[i+1].n){
f=max(f,k[i+1].m);
}
else{
x[aa]=f-l;
aa++;
l=k[i+1].n;
f=k[i+1].m;
y[bb]=k[i+1].n-k[i].m;
bb++;
}
}
x[aa]=f-l;
aa++;
sort(x,x+aa+1,ll);
sort(y,y+bb+1,ll);
cout<<x[0]<<' '<<y[0];
return 0;
}