#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
//英语 看博友分析 抄博友程序 二分图最大匹配 背
int n,p;
int g[400][400];
int vis[400];
int link[400];
int dfs(int x)
{
for(int i=1;i<=p;i++)
{
if(vis[i]==0 && g[x][i]==1)
{
vis[i]=1;
if(link[i]==0 || dfs(link[i]))
{
link[i]=x;
return 1;
}
}
}
return 0;
}
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
memset(g,0,sizeof(g));
memset(link,0,sizeof(link));
scanf("%d%d",&n,&p);
for(int i=1;i<=n;i++)
{
int m;
scanf("%d",&m);
for(int j=0;j<m;j++)
{
int y;
scanf("%d",&y);
g[i][y]=1;
}
}
int ans=0;
for(int i=1;i<=n;i++)
{
memset(vis,0,sizeof(vis));
if(dfs(i))
{
ans++;
}
}
//cout<<ans<<endl;
if(ans==n)
{
cout<<"YES"<<endl;
}else
{
cout<<"NO"<<endl;
}
}
return 0;
}