#include <bits/stdc++.h>
using namespace std;
int main() {
  int N, M, w, A = 0;
  cin >> N >> M;
  vector<int> k(M), p(M);
  vector<vector<int>> s(M, vector<int>(N));
  for (int i = 0; i < M; i++) {
    for (int j = 0; j < k.at(i); j++) {
      cin >> w;
      s.at(i).at(j);
    }
  }
  for (int i = 0; i < M; i++)
    for (int j = 0; j < N; j++) cout << s.at(i).at(j) << endl;
  for (int i = 0; i < (1 << 10); i++) {
    bitset<10> x(i);
    if (x.test(N)) break;
    int T = 0;
    for (int j = 0; j < M; j++) {
      int S = 0;
      for (int a = 0; a < k.at(j); a++)
        if (x.test(s.at(j).at(a) - 1)) S++;
      int p;
      cin >> p;
      if (S % 2 == p) T++;
    }
    if (T == M) A++;
  }
  cout << A << endl;
}
