并查集……
#include <cstdio>
int f[1005],q,w,n,m;
int sf(int x){return x==f[x]?x:f[x]=sf(f[x]);}
int main(){
while(~scanf("%d",&n)){
if(n==0)break;
scanf("%d",&m);
for(int i=1;i<=n;i++)f[i]=i;
for(int i=0;i<m;i++){
scanf("%d%d",&q,&w);
f[sf(q)]=sf(w);
}int ans=-1;
for(int i=1;i<=n;i++)if(f[i]==i)ans++;
printf("%d
",ans);
}
return 0;
}