/*
TASK:man
LANG:C++
*/   
#include <iostream>
using namespace std;
int ch[5000][2];
int used[15000];
//int put[5000];
//int iput=0;
int n,a,b,c,d,br=30000,br1=-1;
void dfs(int vr){
     int l,k,i;
     l=vr;
     used[vr]=1;
     br1++;
      k=0;
    //  iput++;
  //    put[iput]=vr;
     for(i=0;i<n;i++) {if(used[ch[i][0]]==0) {k=1;break;}
                       if(used[ch[i][1]]==0) {k=1;break;}
                      }
     //if(k==0){for(i=0;i<=iput;i++) cout<<put[i]<<' ';
       //       system("pause");
         //    }
                              
     if((k==0)&&(br1<br)) {br=br1;used[vr]=0;
                           br1--;return;
                          } 
     for(i=0;i<n;i++){
                      if((used[ch[i][0]]==0)&&(ch[i][1]==l)) dfs(ch[i][0]);
                      if((used[ch[i][1]]==0)&&(ch[i][0]==l)) dfs(ch[i][1]);
                     }
     used[vr]=0;
     br1--;
   //  iput--;
                }
 int main(){
     cin>>n;
     int i,j;
     for(i=0;i<n;i++) cin>>ch[i][0]>>ch[i][1];
     for(i=0;i<n;i++){for(j=0;j<15000;j++) used[j]=0;
                      br1=-1;
                 //     put[0]=ch[i][0];
                      dfs(ch[i][0]);
                      for(j=0;j<15000;j++) used[j]=0;
                      br1=-1;
                   //   put[0]=ch[i][1];
                      dfs(ch[i][1]);
                     } 
     cout<<br<<endl;
     return 0;
     }                                                                                         
