#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1005;
int n,m,x,y;
int f[MAXN];
void init(int f[])
{
for(int i=0;i<=MAXN-1;i++) f[i]=i;
}
int find_f(int x, int f[])
{
if(x!=f[x]) return f[x]=find_f(f[x],f);
return f[x];
}
void join(int x,int y,int f[])
{
int fx=find_f(x,f),fy=find_f(y,f);
if(fx!=fy) f[fy]=fx;
}
int main()
{
while(true)
{
int ans=0;
cin>>n;
if(n!=0)
{
cin>>m;
init(f);
for(int i=1;i<=m;i++)
cin>>x>>y;
join(x,y,f);
int cnt = 0;
for (int i = 1; i <= n; i++)
if (f[i] == i) cnt++;
cout<<cnt-1<<endl;
}else{
break;
}
}
return 0;
}