#include<iostream> #define MOD 998244353 usingnamespace std; bool a[1000005]; int dp[1000005][2]; intmain() { int n, m, k; cin >> n >> m >> k; for (int i = 1; i <= m; i++) { int x; cin >> x; a[x] = true; }
if (a[1]) { dp[1][1] = 0; dp[1][0] = k - 1; } else { dp[1][1] = 1; dp[1][0] = k - 1; } for (int i = 2; i <= n; i++) { if (a[i]) { dp[i][1] = 0; } else { dp[i][1] = dp[i - 1][0]; } dp[i][0] = ((dp[i - 1][0] * (k - 2) % MOD * 1LL) % MOD + (dp[i - 1][1] * (k - 1) % MOD * 1LL) % MOD) % MOD; } cout << (dp[n][0] + dp[n][1]) % MOD; return0; }