#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cmath>
using namespace std;

int main(){
  int n;
  int m;
  cin >> n >> m;
  int k[m];
  int s[m][n]={};
  int p[m];
  int swit;
  int ans=0;
  for (int i=0;i<m;i++){
    cin >> k[i];
    for (int j=0;j<k[i];j++){
      cin >> swit;
      s[i][swit-1]=1;
    }
  }
  for (int i=0;i<m;i++){
    cin >> p[i];
  }
  for (int i=0;i<m;i++){
    for (int j=0;j<n;j++){
//      printf("%d",s[i][j]);
    }
//    printf("\n");
  }
  int x[10];
  for (int i=0;i < pow(float(2),float(n));i++){
    int chk=i;
    for (int j=0;j<n;j++){
      if(chk%2==0){
        x[j]=0;
      }else {
        x[j]=1;
      }
      chk/=2;
    }
//    for (int k=0;k<n;k++) printf("%d",x[k]);
//    printf("\n");
    int ans_=1;
    for (int j=0;j<m;j++){
      int sum=0;
      for (int k=0;k<m;k++){
        if (s[j][k]==1 && x[k]==1){
          sum++;
        }
      }
      if(p[j]!=sum%2){
        ans_=0;
      }
    }
    if(ans_==1){
      ans++;
//      printf("%d\n",i);
    }
  }
  cout << ans;
}
