#include <iostream>
#include <vector>
#include <string>
#include <math.h>

int main() {

	std::string line;
	getline(std::cin, line);

	int n = std::stoi(line.substr(0, line.find(" ")));
	int m = std::stoi(line.substr(line.find(" ")+1));

	std::vector<int> B;
	std::vector<int> A;

	std::string red;
	getline(std::cin, red);

	for(int x = 0; x < m; x++) {
		B.push_back(std::stoi(red.substr(0, red.find(" "))));
		red = red.substr(red.find(" ")+1);
	}

	std::string c_red;
	getline(std::cin, c_red);

	int C = std::stoi(c_red);

	for(int i = 1; i <= n; i++) {
		A.push_back(i);
	}

	for(int i = 0; i <= n - m; i++) {
		for(int j = 0; j < m; j++) {
			A[i + B[j]-1] = A[i + j];
		}
	}

	long long int konacno = 0;

	for(int i = 0; i < n; i++) {
		konacno += A[i] * pow(C, i);
	}

	konacno = abs(konacno % 998244353);

	std::cout << konacno << '\n';

	return 0;
}