#include <bits/stdc++.h>
int acs(const void *a, const void *b) { return *(int *)a - *(int *)b; }
int des(const void *a, const void *b) { return *(int *)b - *(int *)a; }
int cmp_char(const void *a, const void *b) { return *(char *)a - *(char *)b; }
int cmp_str(const void *a, const void *b) {
  return strcmp(*(const char **)a, *(const char **)b);
}
int main(void) {
  int n, m;
  scanf("%d %d", &n, &m);
  int k[11], s[11][11], p[11];
  int i, j;
  for (i = 0; i < m; i++) {
    scanf("%d", &k[i]);
    for (j = 0; j < k[i]; j++) scanf("%d", &s[i][j]);
  }
  for (i = 0; i < m; i++) scanf("%d", &p[i]);
  int ans = (int)pow(2, n);
  for (i = 0; i < m; i++) ans /= 2;
  printf("%d\n", ans);
  return 0;
}
