#include <any> #include <algorithm> #include <cmath> #include <iostream> using namespace std; int fa[1010]; int find(int x) { if(fa[x]==x)return x; return fa[x]=find(fa[x]); } int main() { int N,M; while(cin>>N) { if(N==0)break; cin>>M; for(int i=1;i<=N;i++)fa[i]=i; if(M==0)cout<<N-1<<endl; else { while(M--) { int m1,m2; cin>>m1>>m2; if(m1>m2)swap(m1,m2); int f1 = find(m1); int f2 = find(m2); if(f1!=f2)fa[f2]=f1; } int ans=0; for(int i=1;i<=N;i++) { if(fa[i]==i)ans++; } cout<<ans-1<<endl; } } } // 64 位输出请用 printf("%lld")