#include #include #include #include #include using namespace std; using mint=atcoder::modint998244353; int M; vectorsolve(vectorX) { vectorL(X.size()+1); L[0]=1; int emp=0;mint coef=1; int sum=0; for(int i=0;i0)coef*=M; emp++; } else sum=(sum+X[i])%M; if(emp>0)L[i+1]=coef; else if(sum==0)L[i+1]=1; } return L; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int T;cin>>T; for(;T--;) { int N; cin>>N>>M; vectorX(N); for(int i=0;i>X[i]; vectorL=solve(X); reverse(X.begin(),X.end()); vectorR=solve(X); mint ans=L[N]*(N-1); for(int i=1;i