#include <bits/stdc++.h>
const int MAXN = 100005;
const double eps = 1e-8;
const double PI = acos(-1.0);
using namespace std;
long long n, m, s;
long long a[200005], mod = 998244353;
long long qpow(long long a, long long b) {
  long long ans = 1;
  a = a % mod;
  while (b) {
    if (b & 1) ans = (ans * a) % mod;
    b = b >> 1;
    a = (a * a) % mod;
  }
  return ans;
}
int main() {
  cin >> n >> m >> s;
  for (long long i = 1; i <= m; ++i) {
    scanf("%lld", &a[i]);
  }
  long long sum = 1;
  for (long long i = 1; i <= m; i++) {
    sum =
        sum * (qpow(s, a[i] - a[i - 1]) + qpow(s, 2 * (a[i] - a[i - 1]))) % mod;
  }
  sum = sum * qpow(s, n - a[m] * 2) % mod;
  sum = sum * qpow(qpow((long long)2, m), mod - 2) % mod;
  cout << sum << endl;
  return 0;
}
