MOD = 998244353 def main(): import sys input = sys.stdin.read data = input().split() N = int(data[0]) M = int(data[1]) K = int(data[2]) A = list(map(int, data[3:3+N])) # Precompute the prefix sums modulo K prefix = [0] * (N + 1) for i in range(N): prefix[i+1] = (prefix[i] + A[i]) % K # For each window, compute the answer for k in range(N - M + 1): dp = [0] * K dp[0] = 1 # Start with empty subsequence for i in range(k, k + M): a = A[i] % K new_dp = [0] * K for r in range(K): new_dp[r] = (new_dp[r] + dp[r]) % MOD new_r = (r + a) % K new_dp[new_r] = (new_dp[new_r] + dp[r]) % MOD dp = new_dp print((dp[0] - 1) % MOD) # Subtract the empty subsequence if __name__ == "__main__": main()