#include <bits/stdc++.h>
\
using namespace std;
int n,m,a[100005];
int find(int x)
{
if(a[x]==x)
{
return x;
}
else
{
int t=find(a[x]);
a[x]=t;
return t;
}
}
void cr(int x,int y)
{
a[find(y)]=find(x);
a[y]=x;
}
int main()
{
while(cin>>n)
{
if(n==0)
return 0;
cin>>m;
for(int i=1;i<=n;i++)
{
a[i]=i;
}
for(int i=1;i<=m;i++)
{
int x,y;
cin>>x>>y;
cr(x,y);
}
int cnt=0;
for(int i=1;i<=n;i++)
{
if(a[i]==i)
{
cnt++;
}
}
cout<<cnt-1<<endl;
}
return 0;
}