Q=int(input()) for _ in range(Q): N,M=map(int,input().split()) A=list(map(int,input().split())) L=[] mod=M for i in range(N): if A[i]==-1: L.append(i) if len(L)==0: if (sum(A))%M!=0: print(0) else: result=N x=0 for i in range(N): x+=A[i] x%=mod if x==0: result-=1 print(result) continue mod=998244353 count=len(L) p1=pow(M,count-1,mod) p2=pow(M,count-2,mod) result=p1*N result%=mod pos=L[0] x=0 for i in range(pos): x+=A[i] x%=M if x==0: result-=p1 result%=mod for i in range(len(L)-1): pos1=L[i] pos2=L[i+1] result-=(pos2-pos1)*p2 result%=mod T={} T[0]=1 x=0 pos=L[-1] for i in range(pos+1,N): x+=A[i] x%=M if not x in T: T[x]=1 else: T[x]+=1 result-=T[x]*p1 result%=mod print(result)