#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
const int mod = 998244353;
int add(int a, int b) { return a + b >= mod ? a + b - mod : a + b; }
int n, m, A, b[N];
int qpow(int a, int b) {
  int ret = 1;
  while (b) {
    if (b & 1) ret = 1ll * ret * a % mod;
    a = 1ll * a * a % mod;
    b >>= 1;
  }
  return ret;
}
int cnt(int x) {
  return 1ll * add(qpow(A, 2 * x), qpow(A, x)) * ((mod + 1) / 2) % mod;
}
int main() {
  cin >> n >> m >> A;
  for (int i = 1; i <= m; i++) scanf("%d", b + i);
  int ans = qpow(A, n - 2 * b[m]);
  for (int i = 1; i <= m; i++) ans = 1ll * ans * cnt(b[i] - b[i - 1]) % mod;
  printf("%d\n", ans);
  return 0;
}
