var father:array[1..1000]of longint; i,j,n,q,ans,x,y:longint; function search(x:longint):longint; begin if father[x]<>x then father[x]:=search(father[x]); exit(father[x]); end; procedure judge(x,y:longint); var a,b:longint; begin a:=search(x); b:=search(y); if a<>b then father[b]:=a; end; begin read(n); while n<>0 do begin read(q); for i:=1 to n do father[i]:=i; for i:=1 to q do begin read(x,y); judge(x,y); end; ans:=0; for i:=1 to n do if father[i]=i then inc(ans); writeln(ans-1); read(n); end; end. /************************************************************** Problem: 2203 User: admin Language: Pascal Result: Wrong Answer ****************************************************************/