#include<bits/stdc++.h>
using namespace std;
int pre[1005];
int find(int x)
{
while(pre[x] != x)
x = pre[x];
return x;
}
void join(int x,int y){
int fx=find(x),fy=find(y);
if(fx!=fy)
pre[fx]=fy;
}
int main(){
int m,n,x,y;
int i,j;
while(scanf("%d%d",&n,&m)&&n){
for(i=1;i<=n;i++)
pre[i]=i;
for(i=1;i<=m;i++){
scanf("%d%d",&x,&y);
join(x,y);
}
int k=-1;
for(i=1;i<=n;i++){
if(pre[i]==i)
k++;
}
printf("%d\n",k);
}
return 0;
}