#include <bits/stdc++.h>
using namespace std;
class light {
 public:
  int k;
  vector<int> ks;
  int p;
};
int main() {
  int N, M;
  cin >> N >> M;
  light L[M];
  for (int i = 0; i < M; i++) {
    cin >> L[i].k;
    L[i].ks.resize(L[i].k);
    for (int j = 0; j < L[i].k; j++) {
      cin >> L[i].ks.at(j);
      L[i].ks.at(j) -= 1;
    }
  }
  for (int i = 0; i < M; i++) {
    cin >> L[i].p;
  }
  int ans = 0;
  for (int i = 0; i < 1 << N; i++) {
    bool flg = true;
    int c = 0;
    for (int a = 0; a < M; a++) {
      for (int j = 0; j < L[a].k; j++) {
        if (i >> L[a].ks[j] & 1) {
          c++;
        }
      }
      if (c % 2 != L[a].p) {
        flg = false;
        break;
      }
    }
    if (flg) ans++;
  }
  cout << ans << "\n";
  return 0;
}
