# 数は12種類しかない。 # 12個の数のうちどの数が残っているかをbitで管理 # 消せる先に遷移できる。 # 11010の状態に対して、00110を適用すると&である00010に遷移できる import sys readline = sys.stdin.readline N = int(readline()) DIV = 998244353 dp = [0] * (1 << 12) dp[(1 << 12) - 1] = 1 for i in range(N): new_dp = dp.copy() k,*C = list(map(int,readline().split())) for status in range((1 << 12) - 1, -1, -1): val = 0 for c in C: val |= (1 << (c - 1)) next_status = status & val new_dp[next_status] = (new_dp[next_status] + dp[status]) % DIV dp = new_dp print(dp[0])