/*
TASK:school
LANG:C++
*/
#include<iostream.h>
int M,N;int a[100][100];int p[100],U=1;
void DFS(int s)
{if(s==N)return;
p[s]=1;
for(int i=0;i<N;i++)if(p[i]==0&&a[s][i]==1)DFS(i);
for(int j=0;j<N;j++)
 {if(p[j]==0)
  {U++;
   DFS(j);
  }
 }

}
int main()
{ cin>>N>>M;
 for(int i=0;i<M;i++)
 {   int c,d;
  cin>>c>>d;
  a[c][d]=1;
  }
DFS(0);
cout<<U/2<<endl;
return 0;
}