How Many Tables
#include<stdio.h>
int per[1001];
int find(int x)
{
int r=x;
while(r!=per[r])
r=per[r];
int i=x,j;
while(i!=r)
{
j=per[i];
per[i]=r;
i=j;
}
return r;
}
int main()
{
int z,n,m,a,b,i,ans;
scanf("%d",&z);
while(z--)
{
scanf("%d%d",&n,&m);
ans=n;
for(i=1;i<=n;i++)
per[i]=i;
while(m--)
{
scanf("%d%d",&a,&b);
int fx=find(a);
int fy=find(b);
if(fx!=fy)
{
per[fy]=fx;
ans--;
}
}
printf("%d\n",ans);
}
}