n,m=map(int,input().split())
s=[]
for i in range(m):
	data=list(map(int,input().split()))
	s.append(data[1:])
p=list(map(int,input().split()))

tmp=[]
ans=0
for i in range(n**2):
	cir=format(i,'b').zfill(n)
	for j in range(len(s)):
		for k in range(len(s[j])):
			tmp.append(cir[s[j][k]-1])
		if tmp.count('1')//2!=p[j]:
			break
		tmp.clear()
		if j==len(s)-1:
			ans+=1
print(ans)