E. Преобразования краев
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Рассмотрим некоторое множество различных символов $$$A$$$ и некоторую строку $$$S$$$, состоящую ровно из $$$n$$$ символов, где каждый символ присутствует в $$$A$$$.

Задан массив $$$b$$$ из $$$m$$$ целых чисел ($$$b_1 < b_2 < \dots < b_m$$$).

Разрешено проводить следующую операцию над строкой $$$S$$$:

  1. Выбрать некоторый корректный $$$i$$$ и выставить $$$k = b_i$$$;
  2. Взять первые $$$k$$$ символов $$$S = Pr_k$$$;
  3. Взять последние $$$k$$$ символов $$$S = Su_k$$$;
  4. Заменить первые $$$k$$$ символов $$$S$$$ развернутой $$$Su_k$$$;
  5. Заменить последние $$$k$$$ символов $$$S$$$ развернутой $$$Pr_k$$$.

Например, рассмотрим строку $$$S =$$$ «abcdefghi» и $$$k = 2$$$. $$$Pr_2 =$$$ «ab», $$$Su_2 =$$$ «hi». Развернутые $$$Pr_2 =$$$ «ba», $$$Su_2 =$$$ «ih». Следовательно, полученная $$$S$$$ равна «ihcdefgba».

Данная операция может быть проведена произвольное количество раз (возможно, ноль). Любой $$$i$$$ может быть выбран несколько раз в ходе проведения операций.

Назовем строки $$$S$$$ и $$$T$$$ равными тогда и только тогда, когда существует такая последовательность операций, которая преобразовывает строку $$$S$$$ в строку $$$T$$$. Для приведенного выше примера «abcdefghi» и «ihcdefgba» равны. Обратите внимание, что это подразумевает и $$$S = S$$$.

Задача проста. Посчитайте количество различных строк.

Ответ может быть достаточно велик, поэтому посчитайте его по модулю $$$998244353$$$.

Входные данные

В первой строке записаны три целых числа $$$n$$$, $$$m$$$ и $$$|A|$$$ ($$$2 \le n \le 10^9$$$, $$$1 \le m \le min(\frac n 2, 2 \cdot 10^5)$$$, $$$1 \le |A| \le 10^9$$$) — длина строки, размер массива $$$b$$$ и размер множества $$$A$$$, соответственно.

Во второй строке записаны $$$m$$$ целых чисел $$$b_1, b_2, \dots, b_m$$$ ($$$1 \le b_i \le \frac n 2$$$, $$$b_1 < b_2 < \dots < b_m$$$).

Выходные данные

Выведите единственное целое число — количество различных строк длины $$$n$$$ с символами из множества $$$A$$$ по модулю $$$998244353$$$.

Примеры
Входные данные
3 1 2
1
Выходные данные
6
Входные данные
9 2 26
2 3
Выходные данные
150352234
Входные данные
12 3 1
2 5 6
Выходные данные
1
Примечание

Приведены все различные строки для первого примера. Выбранные буквы 'a' и 'b' только чтобы показать, что символы в $$$A$$$ различны.

  1. «aaa»
  2. «aab» = «baa»
  3. «aba»
  4. «abb» = «bba»
  5. «bab»
  6. «bbb»