/*
题目:
n个人中有m对人互为朋友,若a认识b,b认识c,则a认识c,问这n个人中最多有多少人
相互认识
分析:
并查集实现,把互为朋友的放置在同一集合中,询问最大人数时可以使用计数器计算该
人所在集合的父节点的数字
*/
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int X = 30002;
int p[X],cnt[X],n,m;
int find_set(int x)
{
if(x!=p[x])
p[x] = find_set(p[x]);
return p[x];
}
int main()
{
freopen("sum.in","r",stdin);
freopen("sum.out","w",stdout);
int t,x,y;
cin>>t;
while(t--)
{
memset(cnt,0,sizeof(cnt));
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
p[i] = i;
for(int i=1;i<=m;i++)
{
scanf("%d%d",&x,&y);
x = find_set(x);
y = find_set(y);
if(x!=y)
p[y] = x;
}
for(int i=1;i<=n;i++)
{
x = find_set(i);
cnt[x]++;
}
int ans = 0;
for(int i=1;i<=n;i++)
ans = max(cnt[i],ans);
cout<<ans<<endl;
}
return 0;
}