#include <bits/stdc++.h>
using namespace std;
const int maxn = 2 * 100010;
const int MOD = 998244353;
long long powmod(long long a, long long n) {
  long long res = 1;
  while (n > 0) {
    if (n & 1) res = res * a % MOD;
    a = a * a % MOD;
    n >>= 1;
  }
  return res;
}
int main() {
  long long n, m, A, b[maxn];
  scanf("%lld %lld %lld", &n, &m, &A);
  for (int i = 1; i <= m; i++) scanf("%lld", &b[i]);
  long long mod2 = powmod(2, MOD - 2);
  long long ans = 1;
  for (int i = 1; i <= m; i++) {
    long long L = b[i] - b[i - 1];
    long long tmp = powmod(A, L);
    ans = ans * tmp % MOD * (tmp + 1) % MOD;
    ans = ans * mod2 % MOD;
  }
  ans = ans * powmod(A, n - b[m] - b[m]) % MOD;
  printf("%lld\n", ans);
  return 0;
}
