package coding;
import java.util.*;
public class Main{
private static Scanner sc;
static boolean[] mark=new boolean[100005];
static ArrayList[] adj;
public static void main(String args[])throws Exception{
sc=new Scanner(System.in);
int test=sc.nextInt();
while(test-->0){
int n=sc.nextInt();
int m=sc.nextInt();
adj=new ArrayList[n+1];
for(int i=0;i<=n;i++){
adj[i]=new ArrayList<Integer>();
mark[i]=false;
}
for(int i=1;i<=m;i++){
int u=sc.nextInt();
int v=sc.nextInt();
u++;
v++;
adj[u].add(v);
adj[v].add(u);
}
int ans=0;
for(int i=1;i<=n;i++){
if(mark[i]==false){
ans++;
bfs(i);
}
}
System.out.println(ans);
}
}
static void bfs(int start){
mark[start]=true;
Queue<Integer> q=new LinkedList<Integer>();
q.add(start);
while(!q.isEmpty()){
int s=q.remove();
for(Integer w: adj[s]){
if(mark[w]==false){
mark[w]=true;
q.add(w);
}
}
}
}
}