n,m = map(int,input().split())
l =[]
pl = []
for i in range(m):
  l.append(list(int(i) for i in input().split()))
pl= list((int(i) for i in input().split()))
cnt = 0
sw = [0]*n
for i in range(2*n):
  sw = list(format(i,"b"))
  while len(sw) < n:
    sw.insert(0,"0")
  flag = 1
  for j in range(m):
    tmp = 0
    for k in range(l[j][0]):
      if sw[-l[j][k+1]] == "1":
        tmp += 1
    if tmp % 2 != pl[j]:
      flag = 0
  if flag == 1:
    cnt += 1
print(cnt)