#include <bits/stdc++.h>
using namespace std;
const long long mod = 998244353;
long long modPow(long long a, long long b) {
  long long ans = 1;
  a %= mod;
  while (b) {
    if (b & 1) (ans *= a) %= mod;
    (a *= a) %= mod;
    b >>= 1;
  }
  return ans;
}
long long b[200005];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  cout << setprecision(30);
  long long n, sz;
  int m;
  cin >> n >> m >> sz;
  for (int i = 1; i <= m; i++) {
    cin >> b[i];
  }
  b[0] = 0;
  long long ans = 1;
  long long inv2 = (mod + 1) / 2;
  for (int i = 1; i <= m; i++) {
    long long tmp =
        (modPow(sz, 2 * (b[i] - b[i - 1])) + modPow(sz, b[i] - b[i - 1])) *
        inv2 % mod;
    (ans *= tmp) %= mod;
  }
  (ans *= modPow(sz, n - 2 * b[m])) %= mod;
  cout << ans << endl;
}
