#include <iostream>
using namespace std;

int main(){
  int N, M;
  cin >> N >> M;

  int s[M][N]={0};
  int p[M];

  int count=0;

  for(int i=0; i<M; i++){
    int n;
    cin >> n;
    for(int j=0; j<n; j++){
      cin >> s[i][j];
    }
  }

  for(int i=0; i<M; i++){
    cin >> p[i];
  }

  for(int bits=0; bits<(1<<N); bits++){
    int als=0;
    for(int i=0; i<M; i++){
      int sum=0;
      for(int j=0; s[i][j]!=0; j++){
        int mask = (1 << (s[i][j]-1));
        if(bits & mask){
          sum++;
        }
      }
      if(sum%2==p[i]){
        als++;
      }
    }
    if(als == M){
      count++;
    }
  }

  cout << count << endl;

  return 0;
}