n, m = map(int, input().split())
denq = []
for _ in range(m):
    ks = tuple(map(lambda x: int(x)-1, input().split()))
    denq.append(set(ks[1:]))
P = tuple(map(int, input().split()))

ans = 0
for i in range(2**n):
    kk = [0] * m
    for j in range(n):
        # スイッチjがonの場合
        if (i>>j)&1:
            for idq, dq in enumerate(denq):
                # すべての電球に対して
                # スイッチjが電球に紐付けられていれば、onをカウント
                if j in dq:
                    kk[idq] += 1

    for idq in range(m):
        if P[idq] != kk[idq]%2:
            break
    else:
        ans += 1
print(ans) n, m = map(int, input().split()) n map(int, input().split()) map int input().split() ().split () input split m denq = [] denq [] for _ in range(m):
    ks = tuple(map(lambda x: int(x)-1, input().split()))
    denq.append(set(ks[1:])) _ range(m) range m ks = tuple(map(lambda x: int(x)-1, input().split())) ks tuple(map(lambda x: int(x)-1, input().split())) tuple map(lambda x: int(x)-1, input().split()) map lambda x: int(x)-1 int(x)-1 int(x) int x 1 x input().split() ().split () input split denq.append(set(ks[1:])) denq.append denq append set(ks[1:]) set ks[1:] ks 1: 1 P = tuple(map(int, input().split())) P tuple(map(int, input().split())) tuple map(int, input().split()) map int input().split() ().split () input split ans = 0 ans 0 for i in range(2**n):
    kk = [0] * m
    for j in range(n):
        # スイッチjがonの場合
        if (i>>j)&1:
            for idq, dq in enumerate(denq):
                # すべての電球に対して
                # スイッチjが電球に紐付けられていれば、onをカウント
                if j in dq:
                    kk[idq] += 1

    for idq in range(m):
        if P[idq] != kk[idq]%2:
            break
    else:
        ans += 1 i range(2**n) range 2**n 2 n kk = [0] * m kk [0] * m [0] 0 m for j in range(n):
        # スイッチjがonの場合
        if (i>>j)&1:
            for idq, dq in enumerate(denq):
                # すべての電球に対して
                # スイッチjが電球に紐付けられていれば、onをカウント
                if j in dq:
                    kk[idq] += 1

     j range(n) range n if (i>>j)&1:
            for idq, dq in enumerate(denq):
                # すべての電球に対して
                # スイッチjが電球に紐付けられていれば、onをカウント
                if j in dq:
                    kk[idq] += 1

     (i>>j)&1 i>>j i j 1 for idq, dq in enumerate(denq):
                # すべての電球に対して
                # スイッチjが電球に紐付けられていれば、onをカウント
                if j in dq:
                    kk[idq] += 1

     idq dq enumerate(denq) enumerate denq if j in dq:
                    kk[idq] += 1

     j in dq j dq kk[idq] += 1 kk[idq] kk idq 1 for idq in range(m):
        if P[idq] != kk[idq]%2:
            break
    else:
        ans += 1 idq range(m) range m if P[idq] != kk[idq]%2:
            break
     P[idq] != kk[idq]%2 P[idq] P idq kk[idq]%2 kk[idq] kk idq 2 break ans += 1 ans 1 print(ans) print ans P = tuple(map(int, input().split())) tuple(map(int, input().split())) P denq = [] [] denq m = map(int, input().split()) map(int, input().split()) m kk = [0] * m [0] * m kk n, m = map(int, input().split()) map(int, input().split()) n ks = tuple(map(lambda x: int(x)-1, input().split())) tuple(map(lambda x: int(x)-1, input().split())) ks ans += 1 1 ans ans = 0 0 ans
n, m = map(int, input().split())
denq = []
for _ in range(m):
    ks = tuple(map(lambda x: int(x)-1, input().split()))
    denq.append(set(ks[1:]))
P = tuple(map(int, input().split()))

ans = 0
for i in range(2**n):
    kk = [0] * m
    for j in range(n):
        # スイッチjがonの場合
        if (i>>j)&1:
            for idq, dq in enumerate(denq):
                # すべての電球に対して
                # スイッチjが電球に紐付けられていれば、onをカウント
                if j in dq:
                    kk[idq] += 1

    for idq in range(m):
        if P[idq] != kk[idq]%2:
            break
    else:
        ans += 1
print(ans)
