#include<bits/stdc++.h>
#define lc u<<1
#define rc u<<1|1
using namespace std;
using ll = long long;
using pii = pair<int,int>;
const int N = 1e6+5;
int t,n,m,k,l,r,op,x,y,ml=N,mr=0,spe=N<<2;
int cons1[N<<3],cons0[N<<3];
int le1[N<<3],le0[N<<3];
int ri1[N<<3],ri0[N<<3];
int len[N<<3],tag[N<<3];
bool flag;
void fill(int u,bool op){
cons1[u]=le1[u]=ri1[u]=op?len[u]:0;
cons0[u]=le0[u]=ri0[u]=op?0:len[u];
}
void push_down(int u){
if(tag[u]){
fill(lc,1);
fill(rc,1);
tag[lc]^=1;
tag[rc]^=1;
tag[u]=0;
}
}
void push_up(int u,int lcc,int rcc){
cons1[u] = max(max(cons1[lcc],cons1[rcc]),ri1[lcc]+le1[rcc]);
le1[u] = le1[lcc]+((le1[lcc]==len[lcc])?le1[rcc]:0);
ri1[u] = ri1[rcc]+((ri1[rcc]==len[rcc])?ri1[lcc]:0);
cons0[u] = max(max(cons0[lcc],cons0[rcc]),ri0[lcc]+le0[rcc]);
le0[u] = le0[lcc]+((le0[lcc]==len[lcc])?le0[rcc]:0);
ri0[u] = ri0[rcc]+((ri0[rcc]==len[rcc])?ri0[lcc]:0);
}
void push_up(int u){
push_up(u,lc,rc);
}
void build(int u,int l,int r){
len[u] = r-l+1;
if(l==r){
fill(u,0);
return;
}
int m = (l+r)>>1;
build(lc,l,m);
build(rc,m+1,r);
push_up(u);
}
void update(int u,int l,int r,int ql,int qr){
if(ql<=l&&r<=qr){
tag[u]=1;
fill(u,1);
return;
}
push_down(u);
int m = (l+r)>>1;
if(qr<=m) update(lc,l,m,ql,qr);
else if(ql>m) update(rc,m+1,r,ql,qr);
else update(lc,l,m,ql,m),update(rc,m+1,r,m+1,qr);
push_up(u);
}
int query(int u,int l,int r,int ql,int qr){
if(ql<=l&&r<=qr){
return u;
}
push_down(u);
int m = (l+r)>>1;
if(qr<=m) return query(lc,l,m,ql,qr);
else if(ql>m) return query(rc,m+1,r,ql,qr);
else {
int tl = query(lc,l,m,ql,m);
int tr = query(rc,m+1,r,m+1,qr);
spe++;
push_up(spe,tl,tr);
return spe;
}
}
int query1cnt(int u,int l,int r,int ql,int qr){
return cons1[query(u,l,r,ql,qr)];
}
int query0cnt(int u,int l,int r,int ql,int qr){
return cons0[query(u,l,r,ql,qr)];
}
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
cin>>n;
build(1,1,N);
for(int i = 1;i<=n;i++){
cin>>l>>r;
r-=0;
l+=1;
ml = min(ml,l);
mr = max(mr,r);
update(1,1,N,l,r);
}
cout<<query1cnt(1,1,N,ml,mr)<<" "<<query0cnt(1,1,N,ml,mr);
return 0;
}