链接:https://cn.vjudge.net/contest/158150#problem/A
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
int link[305][305],used[305],visd[305],res,t,n,p,k,x;
int er_fen(int p){
for(int i = 1;i<=n;++i){
if(link[p][i] == 1&&visd[i] == 0){
visd[i] = 1;
if(used[i] == -1||(er_fen(used[i]) == 1)){
used[i] = p;
return 1;
}
}
}
return 0;
}
void solve(){
for(int i = 1;i<=p;++i){
memset(visd,0,sizeof(visd));
if(er_fen(i) == 1) ++res;
}
}
int main(){
cin>>t;
while(t--){
cin>>n>>p;
for(int i = 1;i<=300;++i){
used[i] = -1;
for(int j = 1;j<=300;++j){
link[i][j] = 0;
}
}
for(int i = 1;i<=p;++i){
cin>>k;
for(int j = 0;j<k;++j){
cin>>x;
link[i][x] = 1;
}
}
res = 0;
solve();
if(res == p)
cout<<"YES\n";
else
cout<<"NO\n";
}
return 0;
}