#include <bits/stdc++.h>
using namespace std;
template <class T>
inline bool chmax(T &a, T b) {
  if (a < b) {
    a = b;
    return 1;
  }
  return 0;
}
template <class T>
inline bool chmin(T &a, T b) {
  if (a > b) {
    a = b;
    return 1;
  }
  return 0;
}
const long long MOD = 2;
vector<int> g[10];
int main() {
  int N, M;
  cin >> N >> M;
  for (int i = 0; i < M; i++) {
    int k;
    cin >> k;
    for (int j = 0; j < k; j++) {
      int x;
      cin >> x;
      g[i].push_back(x - 1);
    }
  }
  int ok = 0;
  for (int i = 0; i < (1 << N); i++) {
    int ans = 0;
    for (int j = 0; j < M; j++) {
      int sum = 0;
      for (auto k : g[j]) {
        sum ^= (i >> k & 1);
      }
      ans += sum % 2;
    }
    if (ans == M) {
      ok++;
    }
  }
  cout << ok << endl;
  return 0;
}
