# include <stdio.h>
int k[1000][1000] `1123={},x[1000]={},s=0,n,m;
void dfs(int y)
{
// 노드y 와 연결되어있으면서, 방문하지 않은 노드를 찾고, 그 노드에서 dfs를 또 시작해
for(int i=1;i<=n;i++)
{
if(k[i][y]!=0)
{
s++;
k[i][y]=0;
k[y][i]=0;
dfs(i);
}
}
}
int main()
{
int a,b,c,q=0;
scanf("%d %d",&n,&m);
for(int i=1;i<=m;i++)
{
scanf("%d %d",&a,&b);
k[a][b]=1;
k[b][a]=1;
}
for(int i=1;i<=n;i++)
{
dfs(i);
if(s==n)
{
q++;
}
}
printf("%d",q);
}



