#include <bits/stdc++.h>
using namespace std;
const int N = 1e3 + 5;
vector <int> V[N];
int flag,MAX = 0,ans = 0;
int apr[N],vis[N],in[N],out[N],alr[N][N];
void dfs (int u) {
vis[u] = 1;
if (in[u] != out[u]) flag = 1;
for (int i = 0;i < V[u].size ();i ++) {
int v = V[u][i]; if (vis[v]) continue;
dfs (v);
}
}
int main () {
int n; cin >> n;
for (int i = 1;i <= n;i ++) {
int l,r; cin >> l >> r;
in[r] ++;
out[l] ++;
apr[l] = apr[r] = 1;
MAX = max (MAX,max (l,r));
if (!alr[l][r]) V[l].push_back (r);
alr[l][r] = 1;
}
for (int i = 1;i <= MAX;i ++) {
if (apr[i] && ! vis[i]) {
flag = 0;
dfs (i);
if (! flag) ans ++;
}
}
for (int i = 1;i <= MAX;i ++) {
ans += max (in[i],out[i]);
}
cout << ans << "\n";
return 0;
}