N, M = map(int,input().split())
state = []
for _ in range(M):
  lst = list(map(int, input().split()))
  state.append(lst[1:])#switch numbers each denkyu
p = list(map(int, input().split()))#numbers switches on %2 == pi 
ans = 0
for i in range(2**N):
  total = 0
  for j in range(M):
    cnt = 0
    for s in state[j]:
      s -= 1
      if (i >> s) & 1:#全スイッチのパターン一つ一つについて、各電球の各スイッチがオンになっているか
        cnt += 1
    cnt %= 2
    if cnt == p[j]:
      total += 1
    else:
      break
  if total == M:
    ans += 1
print(ans) N, M = map(int,input().split()) N map(int,input().split()) map int input().split() ().split () input split M state = [] state [] for _ in range(M):
  lst = list(map(int, input().split()))
  state.append(lst[1:])#switch numbers each denkyu _ range(M) range M lst = list(map(int, input().split())) lst list(map(int, input().split())) list map(int, input().split()) map int input().split() ().split () input split state.append(lst[1:]) state.append state append lst[1:] lst 1: 1 p = list(map(int, input().split())) p list(map(int, input().split())) list map(int, input().split()) map int input().split() ().split () input split ans = 0 ans 0 for i in range(2**N):
  total = 0
  for j in range(M):
    cnt = 0
    for s in state[j]:
      s -= 1
      if (i >> s) & 1:#全スイッチのパターン一つ一つについて、各電球の各スイッチがオンになっているか
        cnt += 1
    cnt %= 2
    if cnt == p[j]:
      total += 1
    else:
      break
  if total == M:
    ans += 1 i range(2**N) range 2**N 2 N total = 0 total 0 for j in range(M):
    cnt = 0
    for s in state[j]:
      s -= 1
      if (i >> s) & 1:#全スイッチのパターン一つ一つについて、各電球の各スイッチがオンになっているか
        cnt += 1
    cnt %= 2
    if cnt == p[j]:
      total += 1
    else:
      break
   j range(M) range M cnt = 0 cnt 0 for s in state[j]:
      s -= 1
      if (i >> s) & 1:#全スイッチのパターン一つ一つについて、各電球の各スイッチがオンになっているか
        cnt += 1
     s state[j] state j s -= 1 s 1 if (i >> s) & 1:#全スイッチのパターン一つ一つについて、各電球の各スイッチがオンになっているか
        cnt += 1
     (i >> s) & 1 i >> s i s 1 cnt += 1 cnt 1 cnt %= 2 cnt 2 if cnt == p[j]:
      total += 1
    else:
      break
   cnt == p[j] cnt p[j] p j total += 1 total 1 break if total == M:
    ans += 1 total == M total M ans += 1 ans 1 print(ans) print ans p = list(map(int, input().split())) list(map(int, input().split())) p cnt += 1 1 cnt cnt = 0 0 cnt cnt %= 2 2 cnt total += 1 1 total ans += 1 1 ans total = 0 0 total M = map(int,input().split()) map(int,input().split()) M lst = list(map(int, input().split())) list(map(int, input().split())) lst N, M = map(int,input().split()) map(int,input().split()) N state = [] [] state ans = 0 0 ans s -= 1 1 s
N, M = map(int,input().split())
state = []
for _ in range(M):
  lst = list(map(int, input().split()))
  state.append(lst[1:])#switch numbers each denkyu
p = list(map(int, input().split()))#numbers switches on %2 == pi 
ans = 0
for i in range(2**N):
  total = 0
  for j in range(M):
    cnt = 0
    for s in state[j]:
      s -= 1
      if (i >> s) & 1:#全スイッチのパターン一つ一つについて、各電球の各スイッチがオンになっているか
        cnt += 1
    cnt %= 2
    if cnt == p[j]:
      total += 1
    else:
      break
  if total == M:
    ans += 1
print(ans)