#include #include #include #include int main() { int n,m; std::cin >> n >> m; std::vector> a(m); std::vector> contain(n); for (int i = 0; i < m; i++) { int l; std::cin >> l; for (int j = 0; j < l; j++) { int v; std::cin >> v; a[i].insert(v-1); } } for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if(a[j].count(i) == 1) { contain[i].insert(j); } } } std::set> set_of_set; for (auto s : contain) { set_of_set.insert(s); } int size = set_of_set.size(); std::cout << atcoder::modint998244353(2).pow(size).val() << std::endl; return 0; }