/*
TASK: man
LANG: C++
*/
#include <iostream>
using namespace std;

class ed
{
public:
       int s,e,n;
       bool u;
       ed() {}
};

ed E[10000];

int V[15000];
bool u[15000];
int q[15000], qs, qe;
int cnt;

int BFS(int j)
{
    q[qe++] = j;
    u[j] = 1;
    while(qe-qs!=0)
    {
                   int d = qe-qs;
                   for(int k=0; k<d; k++)
                   {
                           int r = q[qs++];
                           int x = V[r];
                           while(x!=-1)
                           {
                                       if(!u[E[x].e]) {E[x].u = 1; q[qe++] = E[x].e; u[E[x].e] = 1;}
                                       x = E[x].n;
                           }
                   }
    }
    return 0;
}

int M;
int N;

int main()
{
    for(int h=0; h<15000; h++)
    {
            V[h] = -1;
    }
    cin>>M;
    for(int i=0; i<M; i++)
    {
            int k,l;
            cin>>k>>l;
            E[2*i].s = k;
            E[2*i].e = l;
            E[2*i].n = V[k];
            V[k] = 2*i;
            E[2*i+1].s = l;
            E[2*i+1].e = k;
            E[2*i+1].n = V[l];
            V[l] = 2*i+1;
            N = max(N, k);
            N = max(N, l);
    }
    for(int j=0; j<N; j++)
    {
            if(!u[j]&&V[j]!=-1) BFS(j);
    }
    for(int k=0; k<2*M; k++)
    {
            if(E[k].u) {
                       cnt++;
                       //cout<<E[k].s<<" "<<E[k].e<<'\n';
                       }
    }
    cout<<cnt<<'\n';
    return 0;
}
