#include<bits/stdc++.h>
using namespace std;
int n,m,k;
const int N=4e6+15,M=1e4+5;
int idx,h[N],ne[N],e[N];
void add(int a,int b){
e[++idx]=b;
ne[idx]=h[a];
h[a]=idx;
}
int ans;
int match[N];
bool find(int x){
for(int i=h[x];i;i=ne[i]){
h[x]=ne[i];
int j=e[i];
if(!match[j]||find(match[j])){
match[j]=x;
return true;
}
}
return false;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
int x,y;cin>>x>>y;
add(x,i+M);
add(i+M,x);
add(y,i+M);
add(i+M,y);
}
for(int i=1;i<=10000;i++){
if(!find(i))break;
ans=i;
}
cout<<ans;
return 0;
}
每个边访问一次啊