/*
task:man
lang:c++
*/
#include<iostream>
using namespace std;
int a[15000][2], n, used[30000]={0}, bau[30000]={0};
int main()
{
    cin>>n;
    int i;
    for(i=0;i<n;i++)
    cin>>a[i][0]>>a[i][1];
    int br=0, p;
    for(i=0;i<n;i++)
    {
	    if(used[i*2]==0){
	    bau[i*2]++;
	    p=a[i][0];
	    for(int j=i+1;j<n;j++)
	    {
		    if(a[j][0]==p) {used[j*2]=1; bau[i*2]++;}
		    if(a[j][1]==p) {used[j*2+1]=1;bau[i*2]++;}
	    }}
	    if(used[i*2+1]==0){
	    bau[i*2+1]++;
	    p=a[i][1];
	    for(int j=i+1;j<n;j++)
	    {
		    if(a[j][0]==p) {used[j*2]=1; bau[i*2+1]++;}
		    if(a[j][1]==p){ used[j*2+1]=1;bau[i*2+1]++;}
	    }}
    }
    int z=0;
    for(i=0;i<n*2;i++)
    {if(used[i]==0) br++;
    if(bau[i]==1) z++; }
    for(i=0;i<n*2;i+=2)
    {
      for(int j=i+1;j<n*2;j++)
      {
	if(bau[i]==1&&bau[j]==1)
	{
	  if(j-1==i) z--;
	}
      }
    }
    if(z==1) {z++;
    cout<<br-z/2-(z)%2<<endl;}
    else cout<<br-z/2-(z+1)%2<<endl;
    return 0;
}
