#include <bits/stdc++.h>
using namespace std;
int n, m, p[11];
vector<int> X[12];
int main() {
  cin >> n >> m;
  for (int i = 0; i < m; i++) {
    int k;
    cin >> k;
    for (int j = 0; j < k; j++) {
      int a;
      cin >> a;
      a--;
      X[i].push_back(a);
    }
  }
  for (int i = 0; i < m; i++) {
    cin >> p[i];
  }
  int cnt = 0;
  for (int i = 0; i < (1 << n); i++) {
    int con = 0;
    bool ans = true;
    for (int j = 0; j < m; j++) {
      int ret = 0;
      for (int v : X[j]) {
        if (i & (1 << v)) con++;
      }
      if (con % 2 != p[j]) {
        ans = false;
      }
    }
    if (ans) {
      cnt++;
    }
  }
  cout << cnt << endl;
  return 0;
}
