MOD = 998244353 def main(): import sys input = sys.stdin.read().split() idx = 0 N = int(input[idx]); idx +=1 M = int(input[idx]); idx +=1 K = int(input[idx]); idx +=1 A = list(map(int, input[idx:idx+N])) idx += N # Precompute the answer for each window for k in range(N - M + 1): window = A[k:k+M] dp = [0] * K dp[0] = 1 # empty subsequence for a in window: 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 ans = (dp[0] - 1) % MOD print(ans) if __name__ == '__main__': main()