n, m = map(int,input().split())
s = list(list(map(int, input().split())) for _ in range(m))
p = list(map(int,input().split()))

#print(n, m, s, p)
#print(s)
#各スイッチのon/offパターン
#0b0000000000~#0b1111111111を全部作成
sw2 = []
for i in range (1 << n):
    #各電球が点灯しているかどうか
    sw =  []
    for j in range(m):
        #各電球に関するスイッチに関するon/offパターンを全て列挙(関連しないスイッチはoff)
        cnt = 0
        for k in range(1, len(s[j])):
            if i >> (s[j][k] - 1) & 1 == 1:
                cnt += 1
            else:
                cnt += 0
            #print(bin(i), j, k, cnt)
        sw.append(cnt)
        #print(sw)
    sw2.append(sw)
#print(sw2)

ans2 = 0
for j in range(len(sw2)):
    ans = 0
    for k in range(len(sw2[j])):
        if sw2[j][k] % 2 == p[k]:
            ans += 1
    if ans == len(sw2[j]):
        ans2 += 1

print(ans2)
#     sw_cnd = []
#     for j in range(len[sw]):
#         for k in range(m):
#             if  sw[j][k] % 2 == p[j]:
#                 i_bin = bin(i)
#                 sw_cnd.append(i_bin)
#
# sw = set(sw)
# print(sw)
# print(len(sw)) n, m = map(int,input().split()) n map(int,input().split()) map int input().split() ().split () input split m s = list(list(map(int, input().split())) for _ in range(m)) s list(list(map(int, input().split())) for _ in range(m)) list list(map(int, input().split())) list map(int, input().split()) map int input().split() ().split () input split p = list(map(int,input().split())) p list(map(int,input().split())) list map(int,input().split()) map int input().split() ().split () input split sw2 = [] sw2 [] for i in range (1 << n):
    #各電球が点灯しているかどうか
    sw =  []
    for j in range(m):
        #各電球に関するスイッチに関するon/offパターンを全て列挙(関連しないスイッチはoff)
        cnt = 0
        for k in range(1, len(s[j])):
            if i >> (s[j][k] - 1) & 1 == 1:
                cnt += 1
            else:
                cnt += 0
            #print(bin(i), j, k, cnt)
        sw.append(cnt)
        #print(sw)
    sw2.append(sw)
#print(sw2) i range (1 << n) range 1 << n 1 n sw =  [] sw [] for j in range(m):
        #各電球に関するスイッチに関するon/offパターンを全て列挙(関連しないスイッチはoff)
        cnt = 0
        for k in range(1, len(s[j])):
            if i >> (s[j][k] - 1) & 1 == 1:
                cnt += 1
            else:
                cnt += 0
            #print(bin(i), j, k, cnt)
        sw.append(cnt)
        #print(sw)
     j range(m) range m cnt = 0 cnt 0 for k in range(1, len(s[j])):
            if i >> (s[j][k] - 1) & 1 == 1:
                cnt += 1
            else:
                cnt += 0
            #print(bin(i), j, k, cnt)
         k range(1, len(s[j])) range 1 len(s[j]) len s[j] s j if i >> (s[j][k] - 1) & 1 == 1:
                cnt += 1
            else:
                cnt += 0
            #print(bin(i), j, k, cnt)
         i >> (s[j][k] - 1) & 1 == 1 i >> (s[j][k] - 1) & 1 i >> (s[j][k] - 1) i s[j][k] - 1 s[j][k] [j] s j k 1 1 1 cnt += 1 cnt 1 cnt += 0 cnt 0 sw.append(cnt) sw.append sw append cnt sw2.append(sw) sw2.append sw2 append sw ans2 = 0 ans2 0 for j in range(len(sw2)):
    ans = 0
    for k in range(len(sw2[j])):
        if sw2[j][k] % 2 == p[k]:
            ans += 1
    if ans == len(sw2[j]):
        ans2 += 1 j range(len(sw2)) range len(sw2) len sw2 ans = 0 ans 0 for k in range(len(sw2[j])):
        if sw2[j][k] % 2 == p[k]:
            ans += 1
     k range(len(sw2[j])) range len(sw2[j]) len sw2[j] sw2 j if sw2[j][k] % 2 == p[k]:
            ans += 1
     sw2[j][k] % 2 == p[k] sw2[j][k] % 2 sw2[j][k] [j] sw2 j k 2 p[k] p k ans += 1 ans 1 if ans == len(sw2[j]):
        ans2 += 1 ans == len(sw2[j]) ans len(sw2[j]) len sw2[j] sw2 j ans2 += 1 ans2 1 print(ans2) print ans2 ans2 = 0 0 ans2 s = list(list(map(int, input().split())) for _ in range(m)) list(list(map(int, input().split())) for _ in range(m)) s ans2 += 1 1 ans2 cnt = 0 0 cnt cnt += 0 0 cnt sw =  [] [] sw ans = 0 0 ans m = map(int,input().split()) map(int,input().split()) m p = list(map(int,input().split())) list(map(int,input().split())) p ans += 1 1 ans sw2 = [] [] sw2 n, m = map(int,input().split()) map(int,input().split()) n cnt += 1 1 cnt
n, m = map(int,input().split())
s = list(list(map(int, input().split())) for _ in range(m))
p = list(map(int,input().split()))

#print(n, m, s, p)
#print(s)
#各スイッチのon/offパターン
#0b0000000000~#0b1111111111を全部作成
sw2 = []
for i in range (1 << n):
    #各電球が点灯しているかどうか
    sw =  []
    for j in range(m):
        #各電球に関するスイッチに関するon/offパターンを全て列挙(関連しないスイッチはoff)
        cnt = 0
        for k in range(1, len(s[j])):
            if i >> (s[j][k] - 1) & 1 == 1:
                cnt += 1
            else:
                cnt += 0
            #print(bin(i), j, k, cnt)
        sw.append(cnt)
        #print(sw)
    sw2.append(sw)
#print(sw2)

ans2 = 0
for j in range(len(sw2)):
    ans = 0
    for k in range(len(sw2[j])):
        if sw2[j][k] % 2 == p[k]:
            ans += 1
    if ans == len(sw2[j]):
        ans2 += 1

print(ans2)
#     sw_cnd = []
#     for j in range(len[sw]):
#         for k in range(m):
#             if  sw[j][k] % 2 == p[j]:
#                 i_bin = bin(i)
#                 sw_cnd.append(i_bin)
#
# sw = set(sw)
# print(sw)
# print(len(sw))
