#include<bits/stdc++.h>
using namespace std;
int par[100001];
int len[100001];
void init(int n){
  for(int i=0;i<n;i++){
    par[i]=i;
    len[i]=0;
  }
}
int root(int n){
  if(par[n]==n)return n;
  return root(par[n]);
}
void unit(int x,int y){
  x=root(x);y=root(y);
  if(x==y)return;
  if(len[x]>=len[y]){
    par[y]=x;
    len[x]++;
  }
  else{
    par[x]=y;
    len[y]++;
  }
}
int main(){
  int n,m;cin>>n>>m;
  init(n);
  vector<int>v[m];
  for(int i=0;i<n;i++){
    int k;cin>>k;
    int l[k];
    for(int j=0;j<k;j++){
      cin>>l[j];
      l[j]--;
      v[l[j]].push_back(i);
      unit(v[l[j]][0],i);
    }
  }
  int r=root(0);
  for(int i=1;i<n;i++){
    if(root(i)!=r){
      cout<<"NO"<<endl;
      return 0;
    }
  }
  cout<<"YES"<<endl;
}

