how many tables

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <stdbool.h>
#include <string.h>
int map[1010];
int getboss(int a){
    if(map[a]==a){
        return map[a];
    }
    else{
        map[a]=getboss(map[a]);
        return map[a];
    }
}
void merge(int a,int b){
    int t1=getboss(a);
    int t2=getboss(b);
    if(t1!=t2){
        map[t2]=t1;
    }
    return;
}
int main(){
    int t,i,j;
    scanf("%d",&t);
    for(j=0;j<t;j++){
        int n,m,out=0;
        scanf("%d%d",&n,&m);
        for(i=1;i<=n;i++){
            map[i]=i;
        }
        for(i=0;i<m;i++){
            int temp1,temp2;
            scanf("%d%d",&temp1,&temp2);
            merge(temp1, temp2);
        }
        for(i=1;i<=n;i++){
            if(map[i]==i){
                out++;
            }
        }
        printf("%dn",out);
    }
    return 0;
}