#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int maxn = 30010;
int father[maxn],c[maxn];
int find(int x){
if(father[x] == x){
return x;
}
return father[x] = find(father[x]);
}
void join(int a, int b){
a = find(a);
b = find(b);
if(a != b){
father[a] = b;
}
}
int main(){
int t;
scanf("%d",&t);
while(t--){
int n,m;
scanf("%d%d",&n,&m);
int i;
for(i = 1 ; i <= n ; ++i){
father[i] = i;
c[i] = 0;
}
for(i = 1 ; i <= m ; ++i){
int a,b;
scanf("%d%d",&a,&b);
join(a,b);
}
for(i = 1 ; i <= n ; ++i){
int x = find(i);
c[x]++;
}
int maxm = 0;
for(i = 1 ; i <= n ; ++i){
if(maxm < c[find(i)]){
maxm = c[find(i)];
}
}
printf("%d\n",maxm);
}
return 0;
}