n,m = list(map(int, input().split()))

l = [list(map(int, input().split())) for i in range(m)]#2次元配列

p = list(map(int, input().split()))

ans = 0

for i in range(2**n):#全てのスイッチの場合に対して

    check = True#全点灯かどうか調べる

    for j in range(m):#電球ごと

        light = 0#スイッチオンの数

        for k in range(1,len(l[j])):

            if((i>>l[j][k] -1) &1):#j番目の電球のk個目のスイッチが入ってるなら

                light +=1#スイッチオンの数+1

        if light%2 != p[j]:

            check = False#スイッチオフならfalse

    if check:

        ans +=1

print(ans)
import math

n,m = list(map(int, input().split()))

switch = [list(map(int,input().split())) for _ in range(m)]

p = list(map(int, input().split()))

count = 0

for j in range(2**n):#スイッチ



    flag = True

    for i in range(m):

        on = 0

        for k in switch[i][1:]:

            if (j >> k-1) & 1:

                on += 1

        if on % 2 != p[i]:

            flag = False

            #break

    if flag:

        count +=1

print(count)
n, m = list(map(int, input().split()))
l = [list(map(int, input().split())) for i in range(m)]  # 2次元配列
p = list(map(int, input().split()))
ans = 0
for i in range(2**n):  # 全てのスイッチの場合に対して
    check = True  # 全点灯かどうか調べる
    for j in range(m):  # 電球ごと
        light = 0  # スイッチオンの数
        for k in range(1, len(l[j])):
            if (i >> l[j][k] - 1) & 1:  # j番目の電球のk個目のスイッチが入ってるなら
                light += 1  # スイッチオンの数+1
        if light % 2 != p[j]:
            check = False  # スイッチオフならfalse
    if check:
        ans += 1
print(ans)

import math

n, m = list(map(int, input().split()))
switch = [list(map(int, input().split())) for _ in range(m)]
p = list(map(int, input().split()))
count = 0
for j in range(2**n):  # スイッチ
    flag = True
    for i in range(m):
        on = 0
        for k in switch[i][1:]:
            if (j >> k - 1) & 1:
                on += 1
        if on % 2 != p[i]:
            flag = False
            # break
    if flag:
        count += 1
print(count)

+import math + -l = [list(map(int, input().split())) for i in range(m)]  # 2次元配列 +switch = [list(map(int, input().split())) for _ in range(m)] -ans = 0 -for i in range(2**n):  # 全てのスイッチの場合に対して -    check = True  # 全点灯かどうか調べる -    for j in range(m):  # 電球ごと -        light = 0  # スイッチオンの数 -        for k in range(1, len(l[j])): -            if (i >> l[j][k] - 1) & 1:  # j番目の電球のk個目のスイッチが入ってるなら -                light += 1  # スイッチオンの数+1 -        if light % 2 != p[j]: -            check = False  # スイッチオフならfalse -    if check: -        ans += 1 -print(ans) +count = 0 +for j in range(2**n):  # スイッチ +    flag = True +    for i in range(m): +        on = 0 +        for k in switch[i][1:]: +            if (j >> k - 1) & 1: +                on += 1 +        if on % 2 != p[i]: +            flag = False +            # break +    if flag: +        count += 1 +print(count)