rt.
#include <bits/stdc++.h>
using namespace std;
int n,m,fa[100005];
int cnt;
int x,y;
int find(int x){
if(fa[x]==x){
return x;
}
else{
int t=find(fa[x]);
fa[x]=t;
return t;
}
}
bool merge(int x, int y){
int f1=fa[x];
int f2=fa[y];
if(f1==f2){
return false;
}
fa[f2]=f1;
return true;
}
inline void init(){
for(int i=1;i<=n;i++){
fa[i]=i;
}
}
int main(){
while(cin>>n){
cnt=0;
if(n==0){
break;
}
cin>>m;
init();
for(int i=1;i<=m;i++){
cin>>x>>y;
merge(x,y);
}
for(int i=1;i<=n;i++){
if(fa[i]==i){
cnt++;
}
}
cout<<cnt-1<<endl;
}
return 0;
}