#include <bits/stdc++.h>
using namespace std;
typedef vector<int> vi;

int main(){
  int N, M;
  vi k(12), p(12);
  vector<vi> s(12, vi(12));

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

  int ans = 0;
  for(int bit=0; bit < (1<<N); bit++){
    bool flag = true;
    for(int i=0; i<M; i++){
      int cnt = 0;
      for(int j=0; j<k[i]; j++){
        if((bit >> (s[i][j]-1)) & 1 == 1) cnt++;
      }
      if(cnt % 2 != p[i]) flag = false;
    }

    if(flag) ans++;
  }

  cout << ans << endl;
}