1 #include<stdio.h>
2 int father[1005];
3 int findset(int x)
4 {
5 return x==father[x]?x:(father[x]=findset(father[x]));
6 }
7 int main()
8 {
9 int n,m,i,a,b,x,y,k;
10 while(scanf("%d %d",&n,&m)&&n)
11 {
12
13 for(i=1;i<=n;i++)
14 {
15 father[i]=i;
16 }
17 k=0;
18 for(i=0;i<m;i++)
19 {
20 scanf("%d %d",&a,&b);
21 x=findset(a);
22 y=findset(b);
23 if(x!=y)
24 {
25 father[x]=y;
26 }
27 }
28 for(i=1;i<=n;i++)
29 {
30 if(father[i]==i)
31 {
32 k++;
33 }
34 }
35 printf("%d\n",k-1);
36 }
37 return 0;
38 }