#include <iostream>
#include <vector>
using namespace std;

//ビット演算を利用
int main() {
  //入力
  int N, M;
  cin >> N >> M;
  //N個のスイッチの状態を表すvector
  vector<int> a(N);
  //M個の電球それぞれについて
  for (int i = 0; i < M; i++) {
    int k;
    cin >> k;
    //電球 i に繋がっている k個のスイッチについて
    for (int j = 0; j < k; j++) {
      //k個のスイッチのうちs番スイッチについて
      int s;
      cin >> s;
      s--;
      //電球が繋がってるときは１となる（１と３が繋がってるときは 10100... となる）
      a[s] |= 1<<i;
    }
  }
  int p = 0;
  for (int i = 0; i < M; i++) {
    int x;
    cin >> x;
    p |= x<<i;
  }

  //処理
  for (int s = 0; s < (1<<N); s++) {
    int t = 0;
    for (int i = 0; i < N; i++) {
      if (s>>i & 1) {
        t ^= a[i];
      }
    }
    if (t == p) {
      ans++;
    }
  }

  //出力
  cout << ans << endl;

  return 0;
}
