/*
TASK: man
LANG: C++
*/
#include<iostream>
#include<cstdio>
#include<vector>
using namespace std;
vector <int > v[16000];
int c[16000],br;
void DFS(int j)
{
     c[j]=1;
     int k=v[j].size();
     for(int x=0;x<k;x++)
     if(v[j][x]&&!c[v[j][x]]){br++;DFS(v[j][x]);}
}
int main()
{
    int m,n=0,i,a,b;
    cin>>m;
    for(i=0;i<m;i++)
    {
                    scanf("%d %d",&a,&b);
                    if(a>n)n=a;
                    if(b>n)n=b;
                    v[a].push_back(b);
                    v[b].push_back(a);
                    
                    }
    for(i=0;i<n;i++)
    if(c[i]==0)DFS(i);
    cout<<br<<'\n';
    return 0;
}
