#include <bits/stdc++.h>
using namespace std;

int main(){
  int n,m;
  cin >>n>>m;
  int s[m][10],k[m];
  for(int i=0;i<m;i++){
    cin>>k[i];
    for(int j=0;j<k[i];j++)cin>>s[i][j];
  }
  
  int p[m];
  for(int i=0;i<m;i++)cin>>p[i];
  
  int l=1;
  for(int i=0;i<n;i++)l*=2;
  
  int t[l][10];
  t[0][0]-=1;
  for(int i=0;i<l;i++){
    t[i][0]+=1;
    for(int j=1;j<10;j++){
      if(t[i][j-1]==2){t[i][j-1]=0;t[i][j]+=1;}
    }
    if(i<l-1){for(int j=0;j<10;j++)t[i+1][j]=t[i][j];}
  }

  int count=0;

  for(int i=0;i<l;i++){
    int b=0;
    for(int j=0;j<m;j++){
      int c=0;
      for(int a=0;a<k[j];a++){
        if(t[i][s[j][a]]==1){c+=1;}
      }
      if(c%2!=p[j]){break;}
      b+=1;
    }
    if(b==m)count+=1;
  }
  cout<<count<<endl;
  return;
}