def mod2(num):
    return num % 2

def solve():
    # 標準入力
    N, M = list(map(int, input().split()))  # N: スイッチの数， M: 電球の数
    k = [0] * M  # 電球iにつながっているスイッチの数
    s = [[0] for _ in range(M)]  # 電球iにつながっているスイッチの番号
    for i in range(M):
        tmp = list(map(int, input().split()))
        k[i] = tmp[0]
        s[i] = tmp[1::]
    p = list(map(int, input().split()))

    # スイッチの状態を総当たり
    count = 0
    for switch_state in range(2**N):
        p_tmp = [0] * M
        iter_num = format(switch_state, '0'+str(N)+'b')
        # 電球ごとに条件をチェック, i: i番目の電球，s_i: i番目の電球に接続しているスイッチのリスト
        for i, s_i in enumerate(s):
            # 電球iに接続しているスイッチs_i_jがon/offかチェック
            for s_i_j in s_i:
                if (iter_num[s_i_j-1] == '1'):
                    p_tmp[i] += 1
        if(p == list(map(mod2, p_tmp))):
            count += 1
    print(count)

if __name__ == "__main__":
    solve() def mod2(num):
    return num % 2 mod2 return num % 2 num % 2 num 2 num num def solve():
    # 標準入力
    N, M = list(map(int, input().split()))  # N: スイッチの数， M: 電球の数
    k = [0] * M  # 電球iにつながっているスイッチの数
    s = [[0] for _ in range(M)]  # 電球iにつながっているスイッチの番号
    for i in range(M):
        tmp = list(map(int, input().split()))
        k[i] = tmp[0]
        s[i] = tmp[1::]
    p = list(map(int, input().split()))

    # スイッチの状態を総当たり
    count = 0
    for switch_state in range(2**N):
        p_tmp = [0] * M
        iter_num = format(switch_state, '0'+str(N)+'b')
        # 電球ごとに条件をチェック, i: i番目の電球，s_i: i番目の電球に接続しているスイッチのリスト
        for i, s_i in enumerate(s):
            # 電球iに接続しているスイッチs_i_jがon/offかチェック
            for s_i_j in s_i:
                if (iter_num[s_i_j-1] == '1'):
                    p_tmp[i] += 1
        if(p == list(map(mod2, p_tmp))):
            count += 1
    print(count) solve N, M = list(map(int, input().split())) N list(map(int, input().split())) list map(int, input().split()) map int input().split() ().split () input split M k = [0] * M k [0] * M [0] 0 M [0] for _ in range(M) for _ in range(M) _ range(M) range M for _ in range(M) [0] 0 s = [[0] for _ in range(M)] s [[0] for _ in range(M)] for i in range(M):
        tmp = list(map(int, input().split()))
        k[i] = tmp[0]
        s[i] = tmp[1::]
     i range(M) range M tmp = list(map(int, input().split())) tmp list(map(int, input().split())) list map(int, input().split()) map int input().split() ().split () input split k[i] = tmp[0] k[i] k i tmp[0] tmp 0 s[i] = tmp[1::] s[i] s i tmp[1::] tmp 1:: 1 p = list(map(int, input().split())) p list(map(int, input().split())) list map(int, input().split()) map int input().split() ().split () input split count = 0 count 0 for switch_state in range(2**N):
        p_tmp = [0] * M
        iter_num = format(switch_state, '0'+str(N)+'b')
        # 電球ごとに条件をチェック, i: i番目の電球，s_i: i番目の電球に接続しているスイッチのリスト
        for i, s_i in enumerate(s):
            # 電球iに接続しているスイッチs_i_jがon/offかチェック
            for s_i_j in s_i:
                if (iter_num[s_i_j-1] == '1'):
                    p_tmp[i] += 1
        if(p == list(map(mod2, p_tmp))):
            count += 1
     switch_state range(2**N) range 2**N 2 N p_tmp = [0] * M p_tmp [0] * M [0] 0 M iter_num = format(switch_state, '0'+str(N)+'b') iter_num format(switch_state, '0'+str(N)+'b') format switch_state '0'+str(N)+'b' '0'+str(N) '0' str(N) str N 'b' for i, s_i in enumerate(s):
            # 電球iに接続しているスイッチs_i_jがon/offかチェック
            for s_i_j in s_i:
                if (iter_num[s_i_j-1] == '1'):
                    p_tmp[i] += 1
         i s_i enumerate(s) enumerate s for s_i_j in s_i:
                if (iter_num[s_i_j-1] == '1'):
                    p_tmp[i] += 1
         s_i_j s_i if (iter_num[s_i_j-1] == '1'):
                    p_tmp[i] += 1
         iter_num[s_i_j-1] == '1' iter_num[s_i_j-1] iter_num s_i_j-1 s_i_j 1 '1' p_tmp[i] += 1 p_tmp[i] p_tmp i 1 if(p == list(map(mod2, p_tmp))):
            count += 1
     p == list(map(mod2, p_tmp)) p list(map(mod2, p_tmp)) list map(mod2, p_tmp) map mod2 p_tmp count += 1 count 1 print(count) print count if __name__ == "__main__":
    solve() __name__ == "__main__" __name__ "__main__" solve() solve def mod2(num):
    return num % 2 def mod2(num):
    return num % 2 mod2 def solve():
    # 標準入力
    N, M = list(map(int, input().split()))  # N: スイッチの数， M: 電球の数
    k = [0] * M  # 電球iにつながっているスイッチの数
    s = [[0] for _ in range(M)]  # 電球iにつながっているスイッチの番号
    for i in range(M):
        tmp = list(map(int, input().split()))
        k[i] = tmp[0]
        s[i] = tmp[1::]
    p = list(map(int, input().split()))

    # スイッチの状態を総当たり
    count = 0
    for switch_state in range(2**N):
        p_tmp = [0] * M
        iter_num = format(switch_state, '0'+str(N)+'b')
        # 電球ごとに条件をチェック, i: i番目の電球，s_i: i番目の電球に接続しているスイッチのリスト
        for i, s_i in enumerate(s):
            # 電球iに接続しているスイッチs_i_jがon/offかチェック
            for s_i_j in s_i:
                if (iter_num[s_i_j-1] == '1'):
                    p_tmp[i] += 1
        if(p == list(map(mod2, p_tmp))):
            count += 1
    print(count) def solve():
    # 標準入力
    N, M = list(map(int, input().split()))  # N: スイッチの数， M: 電球の数
    k = [0] * M  # 電球iにつながっているスイッチの数
    s = [[0] for _ in range(M)]  # 電球iにつながっているスイッチの番号
    for i in range(M):
        tmp = list(map(int, input().split()))
        k[i] = tmp[0]
        s[i] = tmp[1::]
    p = list(map(int, input().split()))

    # スイッチの状態を総当たり
    count = 0
    for switch_state in range(2**N):
        p_tmp = [0] * M
        iter_num = format(switch_state, '0'+str(N)+'b')
        # 電球ごとに条件をチェック, i: i番目の電球，s_i: i番目の電球に接続しているスイッチのリスト
        for i, s_i in enumerate(s):
            # 電球iに接続しているスイッチs_i_jがon/offかチェック
            for s_i_j in s_i:
                if (iter_num[s_i_j-1] == '1'):
                    p_tmp[i] += 1
        if(p == list(map(mod2, p_tmp))):
            count += 1
    print(count) solve
def mod2(num):
    return num % 2

def solve():
    # 標準入力
    N, M = list(map(int, input().split()))  # N: スイッチの数， M: 電球の数
    k = [0] * M  # 電球iにつながっているスイッチの数
    s = [[0] for _ in range(M)]  # 電球iにつながっているスイッチの番号
    for i in range(M):
        tmp = list(map(int, input().split()))
        k[i] = tmp[0]
        s[i] = tmp[1::]
    p = list(map(int, input().split()))

    # スイッチの状態を総当たり
    count = 0
    for switch_state in range(2**N):
        p_tmp = [0] * M
        iter_num = format(switch_state, '0'+str(N)+'b')
        # 電球ごとに条件をチェック, i: i番目の電球，s_i: i番目の電球に接続しているスイッチのリスト
        for i, s_i in enumerate(s):
            # 電球iに接続しているスイッチs_i_jがon/offかチェック
            for s_i_j in s_i:
                if (iter_num[s_i_j-1] == '1'):
                    p_tmp[i] += 1
        if(p == list(map(mod2, p_tmp))):
            count += 1
    print(count)

if __name__ == "__main__":
    solve()