#include #include #include #include #include #include #include using namespace std; using mint=atcoder::modint998244353; #include #include template struct Matrix{ vector >dat; int N,M;//N x M matrix Matrix(){} Matrix(int N_):Matrix(N_,N_){} Matrix(int N_,int M_):N(N_),M(M_),dat(N_,vector(M_)){} vector&operator[](int i){return dat[i];} const vector&operator[](int i)const{return dat[i];} static Matrix eye(int N) { Matrix res(N); for(int i=0;i>=1)if(n&1)res=res*a; return res; } template Matrix operator+(const U&A)const { Matrix res(N,M); for(int i=0;i Matrix operator-(const U&A)const { Matrix res(N,M); for(int i=0;i Matrix operator*(const U&A)const { Matrix res(N,M); for(int i=0;i; int N,K; vector >E[5]; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cin>>N>>K; for(int i=0;i>t; for(;t--;) { int a,b;cin>>a>>b; a--,b--; E[i].push_back(make_pair(a,b)); } } mint ans=0; for(int i=1;i<1<>j&1) { c++; for(paire:E[j]) { M[e.first][e.second]--; M[e.second][e.first]--; M[e.first][e.first]++; M[e.second][e.second]++; } } mat D(N-1); for(int j=0;j