rt
#include<bits/stdc++.h>
using namespace std;
const int N=2e5+10;
map<int,int> q,p;
int len,n,ans=1;
vector<int> e[N+1];
bool f[N+1];
void bfs(){
int Q[N+1],front=1,rear=0;
Q[++rear]=1,f[1]=true;
while(front<=rear){
int x=Q[front++];
ans=max(ans,p[x]);
for(auto i:e[x])
if(!f[i])
Q[++rear]=i,f[i]=true;
}
}
int main(){
scanf("%d",&n);
q[1]=++len,p[1]=1;
for(int i=1;i<=n;i++){
int a,b;
scanf("%d%d",&a,&b);
if(q[a]==0) q[a]=++len,p[q[a]]=a;
if(q[b]==0) q[b]=++len,p[q[b]]=b;
int la=q[a],lb=q[b];
e[la].push_back(lb),e[lb].push_back(la);
}
bfs();
printf("%d",ans);
return 0;
}