#include <bits/stdc++.h>
using namespace std;
const int N=1e4+5,M=1e6+5;
int n,f[N],l,r,res;
bool vis[N];
int find(int x){
return f[x]==x?f[x]:f[x]=find(f[x]);
}
void update(int x,int y){
x=find(x),y=find(y);
if(x==y)return;
if(x<y)f[y]=x;
else f[x]=y;
}
int main(){
cin>>n;
for(int i=1;i<N;i++){
f[i]=i;
}
for(int i=1;i<=n;i++){
cin>>l>>r;
if(vis[l]&&vis[r]){
continue;
}else if(!vis[l]&&vis[r]){
vis[l]=1;
update(l,r);
}else if(!vis[r]&&vis[l]){
vis[r]=1;
update(l,r);
}else{
if(l<r)vis[l]=1;
else vis[r]=1;
update(l,r);
}
}
for(int i=1;i<=M;i++){
if(vis[i]){
res++;
}else{
break;
}
}
cout<<res;
return 0;
}