Олимпиадный тренинг

Задача . F. Лунный новый год и рекурсивная последовательность


Приближается лунный новый год, а Боб получил подарок — рекурсивную последовательность! Последовательность ему очень понравилась, он хочет с ней поиграть.

Пусть \(f_1, f_2, \ldots, f_i, \ldots\) — бесконечная последовательность положительных целых чисел. Боб знает, что, если \(i > k\), то \(f_i\) может быть получена, используя следующую рекуррентную формулу:

\(\)f_i = \left(f_{i - 1} ^ {b_1} \cdot f_{i - 2} ^ {b_2} \cdot \cdots \cdot f_{i - k} ^ {b_k}\right) \bmod p,\(\)

или, если коротко,

\(\)f_i = \left(\prod_{j = 1}^{k} f_{i - j}^{b_j}\right) \bmod p,\(\)

где \(p = 998\,244\,353\) (известное простое), \(b_1, b_2, \ldots, b_k\) — известные целочисленные константы, а \(x \bmod y\) обозначает остаток от деления \(x\) на \(y\).

Боб потерял значения \(f_1, f_2, \ldots, f_k\), что очень печально: ведь они составляют основу последовательности! К счастью, Боб запомнил первые \(k - 1\) элементов последовательности: \(f_1 = f_2 = \ldots = f_{k - 1} = 1\), а также ее \(n\)-й элемент: \(f_n = m\). Найдите любое возможное значение \(f_k\). Если решений нет, скажите Бобу, что восстановить его любимую последовательность нельзя.

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

Первая строка содержит одно положительное целое число \(k\) (\(1 \leq k \leq 100\)), обозначающее длину последовательности \(b_1, b_2, \ldots, b_k\).

Вторая строка содержит \(k\) положительных целых чисел \(b_1, b_2, \ldots, b_k\) (\(1 \leq b_i < p\)).

Третья строка содержит два положительных целых числа \(n\) и \(m\) (\(k < n \leq 10^9\), \(1 \leq m < p\)), которые означают, что \(f_n = m\).

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

Выведите возможное значение \(f_k\), где \(f_k\) — положительное целое число такое, что \(1 \leq f_k < p\). Если есть несколько возможных ответов, выведите любое. Если таких \(f_k\), при которых \(f_n = m\), не существует, выведите \(-1\).

Можно легко показать, что если есть несколько возможных значений \(f_k\), то должно быть хотя бы одно, удовлетворяющее \(1 \leq f_k < p\).

Примечание

В первом примере \(f_4 = f_3^2 \cdot f_2^3 \cdot f_1^5\). Поэтому, если \(f_3 = 4\), то \(f_4 = 16\). Обратите внимание, возможно есть несколько различных ответов.

В третьем примере из \(f_7 = 1\) следует \(f_{23333} = 1\).

В четвертом примере нет такого \(f_1\), что \(f_{88888} = 66666\). Поэтому нужно вывести \(-1\).


Примеры
Входные данныеВыходные данные
1 3
2 3 5
4 16
4
2 5
4 7 1 5 6
7 14187219
6
3 8
2 3 5 6 1 7 9 10
23333 1
1
4 1
2
88888 66666
-1
5 3
998244352 998244352 998244352
4 2
-1
6 10
283 463 213 777 346 201 463 283 102 999
2333333 6263423
382480067

time 3000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя