#include<stdio.h> #include<string.h> #include<stdlib.h> int n,m; int set[1010]; struct val { int x,y; }e[1010]; int find(int x) { return x==set[x] ? x : find(set[x]); } int main() { int t,x,y; while(scanf("%d",&t)!=EOF) { while(t--) { scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) { set[i]=i; } for(int i=1;i<=m;i++) { scanf("%d%d",&x,&y); e[i].x=x,e[i].y=y; } for(int i=1;i<=m;i++) { x=e[i].x,y=e[i].y; int a=find(x),b=find(y); if(a!=b) { set[a]=b; } } int f=0; for(int i=1;i<=n;i++) { if(set[i]==i) { f++; } } printf("%d\n",f); } } //system("pause"); return 0; }