#include<iostream>
using namespace std;
int ch[1005];
void run(int n)
{
for( int i=0; i <= n; i++ )
ch[i] = i;
}
int Find(int x)
{
while(ch[x] != x)
x = ch[x];
return x;
}
void Uion(int x, int y)
{
x = Find(x);
y = Find(y);
if(x >= y)
ch[x] = y;
else
ch[y] = x;
}
int main()
{
int s, e, n, m;
while(scanf("%d", &n) && n)
{
run(n);
scanf("%d", &m);
int i, j;
for( i=0; i < m; i++ )
{
scanf("%d%d", &s, &e);
Uion(s, e);
}
int sum = 0;
for( i=1; i <= n; i++ )
{
if(ch[i] == i)
sum++;
}
printf("%d\n", sum-1);
}
return 0;
}