#include <bits/stdc++.h>
using namespace std;
int ni(int a) {
  int ans = 1;
  for (int i = 0; i < a; i++) {
    ans = ans * 2;
  }
  return ans;
}
int k[19];
int s[19][19];
int p[19];
int a[19];
signed main() {
  int n, m;
  cin >> n >> m;
  int ans = 0;
  int sum = 0;
  int sum2 = 0;
  for (int i = 0; i < m; i++) {
    cin >> k[i];
  }
  for (int i = 0; i < m; i++) {
    for (int j = 0; j < k[i]; j++) {
      cin >> s[i][j];
    }
  }
  for (int i = 0; i < m; i++) {
    cin >> p[i];
  }
  for (int i = 0; i < ni(n); i++) {
    for (int j = 0; j < n; j++) {
      if (j == 0) {
        if (i % 2 == 0) {
          a[j] = 0;
        } else {
          a[j] = 1;
        }
      } else {
        if (i % ni(j + 1) >= ni(j)) {
          a[j] = 1;
        } else {
          a[j] = 0;
        }
      }
    }
    sum2 = 0;
    for (int l = 0; l < m; l++) {
      sum = 0;
      for (int q = 0; q < k[l]; q++) {
        if (a[s[l][q] - 1] == 1) {
          sum++;
        }
      }
      if (sum % 2 == p[l]) {
        sum2++;
      }
    }
    if (sum2 == m) {
      ans++;
    }
  }
  cout << ans << endl;
}
