#include #include using namespace std; typedef long long ll; ll mod = 998244353; ll pw(ll a,ll x){ ll ret = 1; while(x){ if(x&1) (ret *= a) %= mod; (a *= a) %= mod; x /= 2; } return ret; } ll inv(ll x){return pw(x,mod - 2);} ll det(vector> a){ int i,j,k,n = a.size(); ll ret = 1; for(i=0;i> mat){ int i,j,k,n = mat.size(); if(n==1) return 1; vector> mat2(n - 1,vector(n - 1)); //(n,n) no yoinshi for(i=0;i> v[10]; int main(){ int i,j,n,k; cin >> n >> k; for(i=0;i> t; for(j=0;j> a >> b; a--; b--; v[i].push_back({a,b}); } } ll ans = 0; for(i=0;i<(1<> mat(n,vector(n,0)); for(j=0;j>j&1) c++; else{ for(auto p:v[j]){ mat[p.first][p.second]++; mat[p.second][p.first]++; } } } if(c&1){ ans += mod - matrix_tree(mat); }else{ ans += matrix_tree(mat); } (ans %= mod); } cout << ans << "\n"; }