#include <bits/stdc++.h>
using namespace std;
const long long INF = 998244353;
const int MAXN = 1e6 + 7;
const double EPS = 1e-8;
long long power(long long a, long long k) {
  if (!k) {
    return 1;
  }
  long long b = power(a, k / 2);
  b = b * b % INF;
  if (k % 2) {
    return a * b % INF;
  } else {
    return b;
  }
}
long long rev(long long a) { return power(a, INF - 2); }
long long n, m, a;
long long cnt(long long len) {
  long long res = (power(a, 2 * len) + power(a, len)) * rev(2) % INF;
  return res;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> m >> a;
  vector<long long> b(m);
  for (long long i = 0; i < m; i++) {
    cin >> b[i];
  }
  long long res = 1;
  res = cnt(b[0]);
  for (long long i = 1; i < m; i++) {
    res = res * cnt(b[i] - b[i - 1]) % INF;
  }
  res = res * power(a, n - 2 * b[m - 1]) % INF;
  cout << res;
}
