#include <any>
#include <algorithm>
#include <cmath>
#include <iostream>
using namespace std;
int fa[1010];
int find(int x)
{
    if(fa[x]==x)return x;
    return fa[x]=find(fa[x]);
}


int main() {
    int N,M;
    while(cin>>N)
    {
        if(N==0)break;
        cin>>M;
        for(int i=1;i<=N;i++)fa[i]=i;
        if(M==0)cout<<N-1<<endl;
        else 
        {
            while(M--)
            {
                int m1,m2;
                cin>>m1>>m2;
                if(m1>m2)swap(m1,m2);
                int f1 = find(m1);
                int f2 = find(m2);
                if(f1!=f2)fa[f2]=f1;
            }
            int ans=0;
            for(int i=1;i<=N;i++)
            {
                if(fa[i]==i)ans++;
            }
            cout<<ans-1<<endl;
        }
    }
    


}
// 64 位输出请用 printf("%lld")