#include <bits/stdc++.h>
using namespace std;
using ll = long long;
int main() {
  int N, M;
  cin >> N >> M;
  vector<bitset<10>> s(N);
  bitset<10> mask;
  for (int i = M; i < 10; i++) mask[i] = true;
  for (int i = 0; i < M; i++) {
    int k;
    cin >> k;
    for (int j = 0; j < k; j++) {
      int ss;
      cin >> ss;
      s[ss - 1][i] = true;
    }
  }
  bitset<10> init;
  for (int i = 0; i < M; i++) {
    int j;
    cin >> j;
    if (j > 0) init[i] = true;
  }
  int res = 0;
  for (int i = 0; i < (1 << N); i++) {
    bitset<10> ptn(i);
    bitset<10> chk = init;
    for (int j = 0; j < N; j++) {
      if (ptn[j]) chk ^= s[j];
    }
    chk |= mask;
    if (chk.all()) res++;
  }
  cout << res << endl;
}
