#include <bits/stdc++.h>
using namespace std;
const long long MOD = 998244353;
long long POW(long long a, long long k) {
  if (k == 0) return 1;
  long long t = POW(a, k >> 1);
  t = t * t % MOD;
  if (k % 2) t = t * a % MOD;
  return t;
}
int b[1010100];
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  int n, m, sz;
  cin >> n >> m >> sz;
  for (int i = (1); i <= (m); ++i) cin >> b[i];
  long long ans = POW(sz, n - b[m] * 2);
  for (int i = (1); i <= (m); ++i) {
    int cnt = b[i] - b[i - 1];
    long long t = POW(sz, cnt);
    t = t * (t + 1) % MOD;
    t = t * POW(2, MOD - 2) % MOD;
    ans = ans * t % MOD;
  }
  if (ans < 0) {
    ans += MOD;
  }
  cout << ans;
}
