n,m=map(int,input().split())
comb = []
for _ in range(m):
    comb.append(list(map(int,input().split()))[1:])
point = list(map(int,input().split()))
ans = 0
for i in range(2**n): #スイッチのon/offの組み合わせは2**n通りある
    on = [0]*m
    for j in range(n): #それぞれ何個めがonになっているか調べる
        if (i>>j)&1: #j個目がonになっているとき
            for k in range(m): #それぞれの電球に対して
                if j+1 in comb[k]: #もしj個目のon/offが電球kに関係するなら
                    on[k] += 1 #電球kに関してonポイントを与える
                    on[k] %= 2 #onポイントは偶奇のみ議論する
    if point==on: #もしこの組み合わせのon/offパターンが所与の条件に一致するなら
        ans += 1 #全ての電灯が一致する組み合わせが一つ見つかったことになる
print(ans) n,m=map(int,input().split()) n map(int,input().split()) map int input().split() ().split () input split m comb = [] comb [] for _ in range(m):
    comb.append(list(map(int,input().split()))[1:]) _ range(m) range m comb.append(list(map(int,input().split()))[1:]) comb.append comb append list(map(int,input().split()))[1:] (map(int,input().split())) list map(int,input().split()) map int input().split() ().split () input split 1: 1 point = list(map(int,input().split())) point list(map(int,input().split())) list map(int,input().split()) map int input().split() ().split () input split ans = 0 ans 0 for i in range(2**n): #スイッチのon/offの組み合わせは2**n通りある
    on = [0]*m
    for j in range(n): #それぞれ何個めがonになっているか調べる
        if (i>>j)&1: #j個目がonになっているとき
            for k in range(m): #それぞれの電球に対して
                if j+1 in comb[k]: #もしj個目のon/offが電球kに関係するなら
                    on[k] += 1 #電球kに関してonポイントを与える
                    on[k] %= 2 #onポイントは偶奇のみ議論する
    if point==on: #もしこの組み合わせのon/offパターンが所与の条件に一致するなら
        ans += 1 #全ての電灯が一致する組み合わせが一つ見つかったことになる i range(2**n) range 2**n 2 n on = [0]*m on [0]*m [0] 0 m for j in range(n): #それぞれ何個めがonになっているか調べる
        if (i>>j)&1: #j個目がonになっているとき
            for k in range(m): #それぞれの電球に対して
                if j+1 in comb[k]: #もしj個目のon/offが電球kに関係するなら
                    on[k] += 1 #電球kに関してonポイントを与える
                    on[k] %= 2 #onポイントは偶奇のみ議論する
     j range(n) range n if (i>>j)&1: #j個目がonになっているとき
            for k in range(m): #それぞれの電球に対して
                if j+1 in comb[k]: #もしj個目のon/offが電球kに関係するなら
                    on[k] += 1 #電球kに関してonポイントを与える
                    on[k] %= 2 #onポイントは偶奇のみ議論する
     (i>>j)&1 i>>j i j 1 for k in range(m): #それぞれの電球に対して
                if j+1 in comb[k]: #もしj個目のon/offが電球kに関係するなら
                    on[k] += 1 #電球kに関してonポイントを与える
                    on[k] %= 2 #onポイントは偶奇のみ議論する
     k range(m) range m if j+1 in comb[k]: #もしj個目のon/offが電球kに関係するなら
                    on[k] += 1 #電球kに関してonポイントを与える
                    on[k] %= 2 #onポイントは偶奇のみ議論する
     j+1 in comb[k] j+1 j 1 comb[k] comb k on[k] += 1 on[k] on k 1 on[k] %= 2 on[k] on k 2 if point==on: #もしこの組み合わせのon/offパターンが所与の条件に一致するなら
        ans += 1 #全ての電灯が一致する組み合わせが一つ見つかったことになる point==on point on ans += 1 ans 1 print(ans) print ans ans += 1 1 ans point = list(map(int,input().split())) list(map(int,input().split())) point n,m=map(int,input().split()) map(int,input().split()) n ans = 0 0 ans on = [0]*m [0]*m on m=map(int,input().split()) map(int,input().split()) m comb = [] [] comb
n,m=map(int,input().split())
comb = []
for _ in range(m):
    comb.append(list(map(int,input().split()))[1:])
point = list(map(int,input().split()))
ans = 0
for i in range(2**n): #スイッチのon/offの組み合わせは2**n通りある
    on = [0]*m
    for j in range(n): #それぞれ何個めがonになっているか調べる
        if (i>>j)&1: #j個目がonになっているとき
            for k in range(m): #それぞれの電球に対して
                if j+1 in comb[k]: #もしj個目のon/offが電球kに関係するなら
                    on[k] += 1 #電球kに関してonポイントを与える
                    on[k] %= 2 #onポイントは偶奇のみ議論する
    if point==on: #もしこの組み合わせのon/offパターンが所与の条件に一致するなら
        ans += 1 #全ての電灯が一致する組み合わせが一つ見つかったことになる
print(ans)