import sys import math MOD = 998244353 def main(): N, M, K = map(int, sys.stdin.readline().split()) A = list(map(int, sys.stdin.readline().split())) r = [a % K for a in A] # Precompute ω^j for j in 0..K-1 omega = [] for j in range(K): angle = 2 * math.pi * j / K omega.append(complex(math.cos(angle), math.sin(angle))) # Precompute prefix[j][i] prefix = [ [ complex(0.0, 0.0) for _ in range(N+1)] for _ in range(K) ] for j in range(K): prefix[j][0] = complex(1.0, 0.0) for i in range(1, N+1): term = 1.0 + omega[j] ** (r[i-1]) prefix[j][i] = prefix[j][i-1] * term # Process each window for k in range(1, N-M+2): end = k + M - 1 res = 0.0 for j in range(K): # Compute F(ω^j) = prefix[j][end] / prefix[j][k-1] numerator = prefix[j][end] denominator = prefix[j][k-1] if abs(denominator) < 1e-10: f = complex(0.0, 0.0) else: f = numerator / denominator res += f.real / K # sum (F(ω^j) / K) for all j # The answer is (res - 1) mod MOD ans = (int(round(res)) - 1) % MOD print(ans) if __name__ == "__main__": main()