RT
#include<bits/stdc++.h>
using namespace std;
int n,m,e,x,y,vis[1000005],pd[1000005],sum;
vector<int> v[1000005];
int dfs(int k){
int len=v[k].size();
vis[k]=1;
for(int i=0;i<len;i++){
if(pd[v[k][i]]==0){
pd[v[k][i]]=k;
return 1;
}
if(vis[pd[v[k][i]]]==0 && dfs(pd[v[k][i]])){
pd[v[k][i]]=k;
return 1;
}
}
return 0;
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>x>>y;
v[x].push_back(i);
v[y].push_back(i);
}
for(int i=1;;i++){
memset(vis,0,sizeof(vis));
if(dfs(i)){
sum++;
}
else{
break;
}
}
cout<<sum;
return 0;
}
50分TLE