#include<iostream> #include<cstdio> using namespace std; const int maxn=1005; int f[maxn]; bool v[maxn]; int findset(int x){ return f[x] != x ? f[x]=findset(f[x]) : x;} void merge(int a,int b) { int fa=findset(a); int fb=findset(b); if(fa!=fb) f[fa]=fb; } int main() { int n,m,i,a,b,ans; while(scanf("%d",&n),n) { scanf("%d",&m); for(i=1;i<=n;i++) f[i]=i,v[i]=false; while(m--) { scanf("%d %d",&a,&b); merge(a,b); } for(i=1;i<=n;i++) v[findset(f[i])]=true; ans=0; for(i=1;i<=n;i++) if(v[i]) ans++; printf("%d ",ans-1); } return 0; }