N,M = map(int,input().split()) bit = [] inv = [] S = (1 << N) - 1 for _ in range(M): l,*a = map(int,input().split()) tmp = 0 for k in a: tmp |= 1 << (k - 1) bit.append(tmp) inv.append(S ^ tmp) count = 0 now = 0 for i in range(N): if now >> i & 1 == 0: count += 1 tmp = S for j in range(M): if bit[j] >> i & 1: tmp &= bit[j] else: tmp &= inv[j] now |= tmp print(pow(2,count,998244353))