/*
TASK:man
LANG:C++
*/
#include<iostream.h>
int a[10000][10000],n=-1;
int arr[5000][2];
int used[15000];
int check(int i,int j)
{if(i>j)return i;
return j;
}
int way(int i,int j)
{if(i==j)return 1;
int b=0,k=-1;
do{
    k++;
    if(!a[i][k] && used[k])
    {a[i][k]=1;a[k][i]=1;
    b=way(k,j);
    a[i][k]=0;a[k][i]=0;}
    }while(!b && k<n);
    return b;
}
int main()
{int m,i,j,k,br;
cin>>m;
for(k=0;k<m;k++){cin>>arr[k][0]>>arr[k][1];if(n<check(arr[k][0],arr[k][1]))n=check(arr[k][0],arr[k][1]);
used[arr[k][0]]=1;used[arr[k][1]]=1;}
br=m;
for(k=0;k<m;k++){a[arr[k][0]][arr[k][1]]=1;a[arr[k][1]][arr[k][0]]=1;
if(way(arr[k][0],arr[k][1]))br--;
else {a[arr[k][0]][arr[k][1]]=0;a[arr[k][1]][arr[k][0]]=0;}
}
cout<<br<<endl;
return 0;
}