#include <iostream>
using namespace std;
int map[102][303];
int vis[303];
int link[102];
bool issearch(int k)
{
for(int i=1;i<=map[k][0];i++)
{
if(!vis[map[k][i]]){
vis[map[k][i]] = 1;
if(!link[map[k][i]]||issearch(link[map[k][i]]))
{
link[map[k][i]] = k;
return 1;
}
}
}
return false;
}
int main()
{
int test;
cin>>test;
while(test--)
{
int p,n;
cin>>p>>n;
memset(link,0,sizeof(link));
memset(map,0,sizeof(map));
for(int i=1;i<=p;i++)
{
int k;
cin>>k;
for(int j=1;j<=k;j++)
cin>>map[i][++map[i][0]];
}
int i;
for( i=1;i<=p;i++)
{
memset(vis,0,sizeof(vis));
if(!issearch(i))break;
}
if(i==p+1)puts("YES");
else puts("NO");
}
return 0;
}