#include <bits/stdc++.h>
using namespace std;
long long n, m, A, a[200001], k, ans = 1;
long long qow(long long x, long long y) {
  return y ? (y & 1 ? x * qow(x, y - 1) % 998244353
                    : qow(x * x % 998244353, y / 2))
           : 1;
}
int main() {
  scanf("%I64d%I64d%I64d", &n, &m, &A);
  for (long long i = 1; i <= m; i++)
    scanf("%I64d", &a[i]), k = qow(A, a[i] - a[i - 1]),
                           ans *= (k * (k + 1) / 2ll) % 998244353,
                           ans %= 998244353;
  printf("%I64d\n", ans * qow(A, n - 2 * a[m]) % 998244353);
}
