# C - Switches

#bit全探索の練習問題

import copy



N,M = input().split()

N = int(N)

M = int(M)



ks = []

for l in range(M):

    s = input().split()

    ks.append(s)

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



KS = []

for m in range(M):#列の数はМ

    box = list()

    for n in range(len(ks[m])):#M列の要素を数字に直す処理

        ks[m][n] = int(ks[m][n])

        box.append(ks[m][n])

    KS.append(box)            



swich = []

for o in range(M):#列の数はМ

    swi = list()

    for r in range(1,len(KS[o])):#k以外を取り出す

        swi.append(ks[o][r])

    swich.append(swi)

           

ans = 0

for i in range(1<<N):#全パターンは2**(スイッチの総数)

    SWICH = copy.deepcopy(swich)

    light_on = 0

    for j in range(N):

        mask = 1<< j#1をj個左にずらした2進数

        if i & mask != 0:#スイッチjがonの時

            continue

        else:#スイッチjがoffの時

            for y in range(M):#電球iごとに繰り返し

                if (j+1 in SWICH[y]) == True:#スイッチsiが電球iに接続されているとき

                    SWICH[y].remove(j+1)



    #onのみがSWICHに入っている

    flat_SWICH = []

    for a in range(len(SWICH)):

        for b in range(len(SWICH[a])):

            flat_SWICH.append(SWICH[a][b])

            

    for x in range(M):

        if (len(SWICH[x]) % 2) == p[x]:#onのスイッチの数を2で割った余りがPの値と等しい時

            light_on += 1

    if light_on == M:#onの電球の個数がMと等しい(全てon)時

        ans += 1

print(ans)
# 93 C - Switches

N,M = list(map(int,input().split()))

K = []

S = []

for _ in range(M):

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

    K.append(s[0])

    # 0-indexed

    s = [i-1 for i in s]

    S.append(s[1:])

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



ans = 0

for i in range(1<<N):

    swiches = [0]*N

    for j in range(N):

        mask = 1<<j

        # j 番目のスイッチが on のとき

        if i & mask != 0:

            swiches[j] = 1

        # j 番目のスイッチが off のとき

        else:

            continue



    # on の電球をカウント

    cnt_light = 0

    for m in range(M):

        cnt_swich = 0

        for s in S[m]:

            if swiches[s] == 1:

                cnt_swich += 1

        if cnt_swich%2 == P[m]:

            cnt_light += 1

    if cnt_light == M:

        ans += 1

print(ans)
# C - Switches
# bit全探索の練習問題
import copy

N, M = input().split()
N = int(N)
M = int(M)
ks = []
for l in range(M):
    s = input().split()
    ks.append(s)
p = list(map(int, input().split()))
KS = []
for m in range(M):  # 列の数はМ
    box = list()
    for n in range(len(ks[m])):  # M列の要素を数字に直す処理
        ks[m][n] = int(ks[m][n])
        box.append(ks[m][n])
    KS.append(box)
swich = []
for o in range(M):  # 列の数はМ
    swi = list()
    for r in range(1, len(KS[o])):  # k以外を取り出す
        swi.append(ks[o][r])
    swich.append(swi)
ans = 0
for i in range(1 << N):  # 全パターンは2**(スイッチの総数)
    SWICH = copy.deepcopy(swich)
    light_on = 0
    for j in range(N):
        mask = 1 << j  # 1をj個左にずらした2進数
        if i & mask != 0:  # スイッチjがonの時
            continue
        else:  # スイッチjがoffの時
            for y in range(M):  # 電球iごとに繰り返し
                if (j + 1 in SWICH[y]) == True:  # スイッチsiが電球iに接続されているとき
                    SWICH[y].remove(j + 1)
    # onのみがSWICHに入っている
    flat_SWICH = []
    for a in range(len(SWICH)):
        for b in range(len(SWICH[a])):
            flat_SWICH.append(SWICH[a][b])
    for x in range(M):
        if (len(SWICH[x]) % 2) == p[x]:  # onのスイッチの数を2で割った余りがPの値と等しい時
            light_on += 1
    if light_on == M:  # onの電球の個数がMと等しい(全てon)時
        ans += 1
print(ans)

# 93 C - Switches
N, M = list(map(int, input().split()))
K = []
S = []
for _ in range(M):
    s = list(map(int, input().split()))
    K.append(s[0])
    # 0-indexed
    s = [i - 1 for i in s]
    S.append(s[1:])
P = list(map(int, input().split()))
ans = 0
for i in range(1 << N):
    swiches = [0] * N
    for j in range(N):
        mask = 1 << j
        # j 番目のスイッチが on のとき
        if i & mask != 0:
            swiches[j] = 1
        # j 番目のスイッチが off のとき
        else:
            continue
    # on の電球をカウント
    cnt_light = 0
    for m in range(M):
        cnt_swich = 0
        for s in S[m]:
            if swiches[s] == 1:
                cnt_swich += 1
        if cnt_swich % 2 == P[m]:
            cnt_light += 1
    if cnt_light == M:
        ans += 1
print(ans)

-# C - Switches -# bit全探索の練習問題 -import copy - -N, M = input().split() -N = int(N) -M = int(M) -ks = [] -for l in range(M): -    s = input().split() -    ks.append(s) -p = list(map(int, input().split())) -KS = [] -for m in range(M):  # 列の数はМ -    box = list() -    for n in range(len(ks[m])):  # M列の要素を数字に直す処理 -        ks[m][n] = int(ks[m][n]) -        box.append(ks[m][n]) -    KS.append(box) -swich = [] -for o in range(M):  # 列の数はМ -    swi = list() -    for r in range(1, len(KS[o])):  # k以外を取り出す -        swi.append(ks[o][r]) -    swich.append(swi) +# 93 C - Switches +N, M = list(map(int, input().split())) +K = [] +S = [] +for _ in range(M): +    s = list(map(int, input().split())) +    K.append(s[0]) +    # 0-indexed +    s = [i - 1 for i in s] +    S.append(s[1:]) +P = list(map(int, input().split())) -for i in range(1 << N):  # 全パターンは2**(スイッチの総数) -    SWICH = copy.deepcopy(swich) -    light_on = 0 +for i in range(1 << N): +    swiches = [0] * N -        mask = 1 << j  # 1をj個左にずらした2進数 -        if i & mask != 0:  # スイッチjがonの時 +        mask = 1 << j +        # j 番目のスイッチが on のとき +        if i & mask != 0: +            swiches[j] = 1 +        # j 番目のスイッチが off のとき +        else: -        else:  # スイッチjがoffの時 -            for y in range(M):  # 電球iごとに繰り返し -                if (j + 1 in SWICH[y]) == True:  # スイッチsiが電球iに接続されているとき -                    SWICH[y].remove(j + 1) -    # onのみがSWICHに入っている -    flat_SWICH = [] -    for a in range(len(SWICH)): -        for b in range(len(SWICH[a])): -            flat_SWICH.append(SWICH[a][b]) -    for x in range(M): -        if (len(SWICH[x]) % 2) == p[x]:  # onのスイッチの数を2で割った余りがPの値と等しい時 -            light_on += 1 -    if light_on == M:  # onの電球の個数がMと等しい(全てon)時 +    # on の電球をカウント +    cnt_light = 0 +    for m in range(M): +        cnt_swich = 0 +        for s in S[m]: +            if swiches[s] == 1: +                cnt_swich += 1 +        if cnt_swich % 2 == P[m]: +            cnt_light += 1 +    if cnt_light == M: