/*
TASK:man
LANG:C++
*/
#include<iostream.h>



int n,i,a,b,m[15010],y,x,j,br,br1,ok,used[15110];
int main()
{
  cin>>n;
  for(i=1;i<=n;i++)
  {
    cin>>a>>b;

    if(a>x)x=a;
    if(b>x)x=b;

    if(m[a]==0 && m[b]==0){ y++; m[a]=y;m[b]=y;}
    else
    if(m[a]!=0 && m[b]==0){m[b]=m[a];}
    else
    if(m[b]!=0 && m[a]==0){m[a]=m[b];}
    else
    if(m[a]!=0 && m[b]!=0 && m[a]!=m[b])
     for(j=1;j<=x;j++)
      if(m[j]==m[a] || m[j]==m[b])m[j]=m[a];
  }
for(j=0;j<=x;j++)
 {if(m[j]==0 || used[j]==1)continue;
  for(i=0;i<=x;i++)
   if(m[i]==m[j] && used[i]!=1){br++;used[i]=1;}
  if(br!=0)br1+=br-1;
  br=0;
 }
 cout<<br1<<endl;
 return 0;
}
