#include<stdio.h> #include<string.h> int pi[111];//保存父亲节点的数组 int find(int x)//找父亲节点的函数 { return x==pi[x]?x:pi[x]=find(pi[x]); } int main() { int n,m; while(~scanf("%d",&n)&&n) { for(int i=1;i<=n;i++) pi[i]=i;//初始化先让每个节点都指向自己 scanf("%d",&m); int cnt=n-1; for(int i=1;i<=m;i++) { int a,b; scanf("%d%d",&a,&b); int x=find(a); int y=find(b); if(x!=y)//若是发现父亲节点不同就表示多了一条边 { //pi[x]=y; pi[y]=x; cnt--; } } printf("%d\n",cnt); } return 0; }