import sys
readline = sys.stdin.readline

# N個のスイッチのon/offの組み合わせを全て探索し、すべて点灯するものをカウント

N,M = map(int,readline().split())
lights = [None] * M
for i in range(M):
  lights[i] = list(map(int,readline().split()))[1:]
  
P = list(map(int,readline().split()))

ans = 0
for i in range(2 ** N):
  for j in range(len(lights)):
    # 電球jが点灯するかチェック
    cnt = 0
    for k in range(len(lights[j])):
      # スイッチを一つ一つ確認
      # onになっているか？
      if (i >> lights[j][k] - 1) & 1:
        # onになっている
        cnt += 1
    if cnt % 2 != P[j]:
      break
  else:
    ans += 1

print(ans) import sys sys readline = sys.stdin.readline readline sys.stdin.readline sys.stdin sys stdin readline N,M = map(int,readline().split()) N map(int,readline().split()) map int readline().split() ().split () readline split M lights = [None] * M lights [None] * M [None] None M for i in range(M):
  lights[i] = list(map(int,readline().split()))[1:]
   i range(M) range M lights[i] = list(map(int,readline().split()))[1:] lights[i] lights i list(map(int,readline().split()))[1:] (map(int,readline().split())) list map(int,readline().split()) map int readline().split() ().split () readline split 1: 1 P = list(map(int,readline().split())) P list(map(int,readline().split())) list map(int,readline().split()) map int readline().split() ().split () readline split ans = 0 ans 0 for i in range(2 ** N):
  for j in range(len(lights)):
    # 電球jが点灯するかチェック
    cnt = 0
    for k in range(len(lights[j])):
      # スイッチを一つ一つ確認
      # onになっているか？
      if (i >> lights[j][k] - 1) & 1:
        # onになっている
        cnt += 1
    if cnt % 2 != P[j]:
      break
  else:
    ans += 1 i range(2 ** N) range 2 ** N 2 N for j in range(len(lights)):
    # 電球jが点灯するかチェック
    cnt = 0
    for k in range(len(lights[j])):
      # スイッチを一つ一つ確認
      # onになっているか？
      if (i >> lights[j][k] - 1) & 1:
        # onになっている
        cnt += 1
    if cnt % 2 != P[j]:
      break
  else:
    ans += 1 j range(len(lights)) range len(lights) len lights cnt = 0 cnt 0 for k in range(len(lights[j])):
      # スイッチを一つ一つ確認
      # onになっているか？
      if (i >> lights[j][k] - 1) & 1:
        # onになっている
        cnt += 1
     k range(len(lights[j])) range len(lights[j]) len lights[j] lights j if (i >> lights[j][k] - 1) & 1:
        # onになっている
        cnt += 1
     (i >> lights[j][k] - 1) & 1 i >> lights[j][k] - 1 i lights[j][k] - 1 lights[j][k] [j] lights j k 1 1 cnt += 1 cnt 1 if cnt % 2 != P[j]:
      break
   cnt % 2 != P[j] cnt % 2 cnt 2 P[j] P j break ans += 1 ans 1 print(ans) print ans P = list(map(int,readline().split())) list(map(int,readline().split())) P M = map(int,readline().split()) map(int,readline().split()) M readline = sys.stdin.readline sys.stdin.readline readline cnt += 1 1 cnt ans += 1 1 ans ans = 0 0 ans lights = [None] * M [None] * M lights cnt = 0 0 cnt N,M = map(int,readline().split()) map(int,readline().split()) N
import sys
readline = sys.stdin.readline

# N個のスイッチのon/offの組み合わせを全て探索し、すべて点灯するものをカウント

N,M = map(int,readline().split())
lights = [None] * M
for i in range(M):
  lights[i] = list(map(int,readline().split()))[1:]
  
P = list(map(int,readline().split()))

ans = 0
for i in range(2 ** N):
  for j in range(len(lights)):
    # 電球jが点灯するかチェック
    cnt = 0
    for k in range(len(lights[j])):
      # スイッチを一つ一つ確認
      # onになっているか？
      if (i >> lights[j][k] - 1) & 1:
        # onになっている
        cnt += 1
    if cnt % 2 != P[j]:
      break
  else:
    ans += 1

print(ans)