{
ID: w1992072
PROG: milk2
LANG: PASCAL
}
PROGRAM milk2;
TYPE
arr=array[1..100000] of longint;
VAR
a1,a2:arr;
n,i,j,l,r,x1,x2:longint;
FUNCTION max(a,b:longint):longint;
begin
max:=a;
if b>a then max:=b;
end;
PROCEDURE qsort(var a:arr;l,r:longint);
var
x,t1,t2,i,j:longint;
begin
i:=l;j:=r;
x:=a;
repeat
while (a<x) do inc(i);
while (a[j]>x) do dec(j);
if (i<=j) then
begin
t1:=a;a:=a[j];a[j]:=t1;
t2:=a2;a2:=a2[j];a2[j]:=t2;
inc(i);dec(j);
end;
until i>j;
if (l<j) then qsort(a,l,j);
if (i<r) then qsort(a,i,r);
end;
BEGIN
assign(input, 'milk2.in');
reset(input);
assign(output, 'milk2.out');
rewrite(output);
readln(n);
for i:=1 to n do readln(a1,a2);
qsort(a1,1,n);
l:=a1[1];
r:=a2[1];
for i:=1 to n do
begin
if a1<=r then
r:=max(a2,r)
else begin
x1:=max(x1,r-l);
x2:=max(x2,a1-r);
l:=a1;
r:=a2;
end;
end;
x1:=max(x1,r-l);
writeln(x1,' ',x2);
Close(input);
Close(output);
END.