#include<bits/stdc++.h>
using namespace std;
int fa[100010];
int find(int x){
if(x==fa[x]) return x;
else return fa[x]=find(fa[x]);
}
void hb(int x,int y){
int xx=find(x);
int yy=find(y);
fa[yy]=xx;
}
int main(){
int n;
while(cin>>n&&n){
for(int i=1;i<=n;i++) fa[i]=i;
int m;
cin>>m;
for(int i=0;i<m;i++){
int x,y;
cin>>x>>y;
if(find(x)!=find(y)){
hb(x,y);
}
}
int ans=0;
for(int i=1;i<=n;i++){
if(fa[i]==i){
ans++;
}
}
cout<<ans-1<<endl;
}
return 0;
}