#include <bits/stdc++.h>
using namespace std;
const int mod = 998244353;
int n, m, A, B[200010], ans, inv2;
int qpow(int a, int b) {
  int ret = 1;
  while (b) {
    if (b & 1) ret = 1ll * ret * a % mod;
    b >>= 1;
    a = 1ll * a * a % mod;
  }
  return ret;
}
int calc(int len) {
  int ret = qpow(A, len);
  ret = (1ll * ret * ret % mod + ret) % mod * inv2 % mod;
  return ret;
}
int main() {
  inv2 = qpow(2, mod - 2);
  scanf("%d%d%d", &n, &m, &A);
  for (int i = 1; i <= m; ++i) scanf("%d", &B[i]);
  ans = qpow(A, n - B[m] * 2);
  B[0] = 0;
  for (int i = 0; i < m; ++i) ans = 1ll * ans * calc(B[i + 1] - B[i]) % mod;
  printf("%d\n", ans);
  return 0;
}
