#include <bits/stdc++.h>
using namespace std;
int N, M;
int a[10][10];
int p[10];
int cnt;
int lit;
int ans = 0;
void cntlit() {
  for (int bit = 0; bit < (1 << N); ++bit) {
    lit = 0;
    for (int i = 0; i < M; i++) {
      cnt = 0;
      for (int j = 0; j < N; j++) {
        if ((a[i][j] == 1) && (bit & 1 << j)) {
          cnt++;
        }
      }
      if (cnt % 2 == p[i]) {
        lit++;
      }
    }
    if (lit == 2) ans++;
  }
  return;
}
int main() {
  cin >> N >> M;
  int k;
  int temp;
  for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 10; j++) {
      a[i][j] = 0;
    }
  }
  for (int i = 0; i < M; i++) {
    cin >> k;
    for (int j = 0; j < k; j++) {
      cin >> temp;
      temp--;
      a[i][temp] = 1;
    }
  }
  for (int i = 0; i < M; i++) {
    cin >> p[i];
  }
  cntlit();
  cout << ans << endl;
}
