## https://yukicoder.me/problems/no/1689 MOD = 998244353 MAX_INDEX = 12 def main(): N = int(input()) sets = [] for _ in range(N): values = tuple(map(int, input().split())) sets.append(values) set_array = [] for values in sets: k = values[0] bit = 0 for i in range(k): x = values[i + 1] x -= 1 bit |= 1 << x set_array.append(bit) dp = [0] * (2 ** MAX_INDEX) for bit in set_array: new_dp = [0 ] * (2 ** MAX_INDEX) # Aを初めて選ぶ new_dp[bit] += 1 new_dp[bit] %= MOD for b in range(2 ** MAX_INDEX): x = bit & b new_dp[x] += dp[b] new_dp[x] %= MOD # Aを選ばない for b in range(2 ** MAX_INDEX): new_dp[b] += dp[b] new_dp[b] %= MOD dp = new_dp print(dp[0]) if __name__ == "__main__": main()