def main():
    N, M = map(int, input().split())
    lst = [list(map(int, input().split())) for _ in range(M)]
    p = list(map(int, input().split()))
    ans = 0

    for i in range(2 ** N):  # スイッチの状態をビット全探索
        switch = [0] * N
        flag = True

        for j in range(N):  # スイッチの状態を1パターン決める 1:ON, 0:OFF
            if ((i >> j) & 1):
                switch[j] = 1

        for j in range(M):  # 各電球について条件を満たすか確認
            cnt = 0  # 各電球についてonになっているスイッチの数
            for k in lst[j][1:]:
                if switch[k - 1] == 1:
                    cnt += 1

            if cnt % 2 != p[j]:  # 1つでも点灯しない電球があったら現在のスイッチの状態はだめ
                flag = False
                break

        if flag == True:  # すべての電球が点灯する
            ans += 1

    print(ans)


if __name__ == "__main__":
    main() def main():
    N, M = map(int, input().split())
    lst = [list(map(int, input().split())) for _ in range(M)]
    p = list(map(int, input().split()))
    ans = 0

    for i in range(2 ** N):  # スイッチの状態をビット全探索
        switch = [0] * N
        flag = True

        for j in range(N):  # スイッチの状態を1パターン決める 1:ON, 0:OFF
            if ((i >> j) & 1):
                switch[j] = 1

        for j in range(M):  # 各電球について条件を満たすか確認
            cnt = 0  # 各電球についてonになっているスイッチの数
            for k in lst[j][1:]:
                if switch[k - 1] == 1:
                    cnt += 1

            if cnt % 2 != p[j]:  # 1つでも点灯しない電球があったら現在のスイッチの状態はだめ
                flag = False
                break

        if flag == True:  # すべての電球が点灯する
            ans += 1

    print(ans) main N, M = map(int, input().split()) N map(int, input().split()) map int input().split() ().split () input split M list(map(int, input().split())) for _ in range(M) for _ in range(M) _ range(M) range M for _ in range(M) list(map(int, input().split())) list map(int, input().split()) map int input().split() ().split () input split lst = [list(map(int, input().split())) for _ in range(M)] lst [list(map(int, input().split())) for _ in range(M)] p = list(map(int, input().split())) p 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):  # スイッチの状態をビット全探索
        switch = [0] * N
        flag = True

        for j in range(N):  # スイッチの状態を1パターン決める 1:ON, 0:OFF
            if ((i >> j) & 1):
                switch[j] = 1

        for j in range(M):  # 各電球について条件を満たすか確認
            cnt = 0  # 各電球についてonになっているスイッチの数
            for k in lst[j][1:]:
                if switch[k - 1] == 1:
                    cnt += 1

            if cnt % 2 != p[j]:  # 1つでも点灯しない電球があったら現在のスイッチの状態はだめ
                flag = False
                break

        if flag == True:  # すべての電球が点灯する
            ans += 1

     i range(2 ** N) range 2 ** N 2 N switch = [0] * N switch [0] * N [0] 0 N flag = True flag True for j in range(N):  # スイッチの状態を1パターン決める 1:ON, 0:OFF
            if ((i >> j) & 1):
                switch[j] = 1

         j range(N) range N if ((i >> j) & 1):
                switch[j] = 1

         (i >> j) & 1 i >> j i j 1 switch[j] = 1 switch[j] switch j 1 for j in range(M):  # 各電球について条件を満たすか確認
            cnt = 0  # 各電球についてonになっているスイッチの数
            for k in lst[j][1:]:
                if switch[k - 1] == 1:
                    cnt += 1

            if cnt % 2 != p[j]:  # 1つでも点灯しない電球があったら現在のスイッチの状態はだめ
                flag = False
                break

         j range(M) range M cnt = 0 cnt 0 for k in lst[j][1:]:
                if switch[k - 1] == 1:
                    cnt += 1

             k lst[j][1:] [j] lst j 1: 1 if switch[k - 1] == 1:
                    cnt += 1

             switch[k - 1] == 1 switch[k - 1] switch k - 1 k 1 1 cnt += 1 cnt 1 if cnt % 2 != p[j]:  # 1つでも点灯しない電球があったら現在のスイッチの状態はだめ
                flag = False
                break

         cnt % 2 != p[j] cnt % 2 cnt 2 p[j] p j flag = False flag False break if flag == True:  # すべての電球が点灯する
            ans += 1

     flag == True flag True ans += 1 ans 1 print(ans) print ans if __name__ == "__main__":
    main() __name__ == "__main__" __name__ "__main__" main() main def main():
    N, M = map(int, input().split())
    lst = [list(map(int, input().split())) for _ in range(M)]
    p = list(map(int, input().split()))
    ans = 0

    for i in range(2 ** N):  # スイッチの状態をビット全探索
        switch = [0] * N
        flag = True

        for j in range(N):  # スイッチの状態を1パターン決める 1:ON, 0:OFF
            if ((i >> j) & 1):
                switch[j] = 1

        for j in range(M):  # 各電球について条件を満たすか確認
            cnt = 0  # 各電球についてonになっているスイッチの数
            for k in lst[j][1:]:
                if switch[k - 1] == 1:
                    cnt += 1

            if cnt % 2 != p[j]:  # 1つでも点灯しない電球があったら現在のスイッチの状態はだめ
                flag = False
                break

        if flag == True:  # すべての電球が点灯する
            ans += 1

    print(ans) def main():
    N, M = map(int, input().split())
    lst = [list(map(int, input().split())) for _ in range(M)]
    p = list(map(int, input().split()))
    ans = 0

    for i in range(2 ** N):  # スイッチの状態をビット全探索
        switch = [0] * N
        flag = True

        for j in range(N):  # スイッチの状態を1パターン決める 1:ON, 0:OFF
            if ((i >> j) & 1):
                switch[j] = 1

        for j in range(M):  # 各電球について条件を満たすか確認
            cnt = 0  # 各電球についてonになっているスイッチの数
            for k in lst[j][1:]:
                if switch[k - 1] == 1:
                    cnt += 1

            if cnt % 2 != p[j]:  # 1つでも点灯しない電球があったら現在のスイッチの状態はだめ
                flag = False
                break

        if flag == True:  # すべての電球が点灯する
            ans += 1

    print(ans) main
def main():
    N, M = map(int, input().split())
    lst = [list(map(int, input().split())) for _ in range(M)]
    p = list(map(int, input().split()))
    ans = 0

    for i in range(2 ** N):  # スイッチの状態をビット全探索
        switch = [0] * N
        flag = True

        for j in range(N):  # スイッチの状態を1パターン決める 1:ON, 0:OFF
            if ((i >> j) & 1):
                switch[j] = 1

        for j in range(M):  # 各電球について条件を満たすか確認
            cnt = 0  # 各電球についてonになっているスイッチの数
            for k in lst[j][1:]:
                if switch[k - 1] == 1:
                    cnt += 1

            if cnt % 2 != p[j]:  # 1つでも点灯しない電球があったら現在のスイッチの状態はだめ
                flag = False
                break

        if flag == True:  # すべての電球が点灯する
            ans += 1

    print(ans)


if __name__ == "__main__":
    main()
