Обратите внимание на необычное ограничение по памяти.
Рассмотрим следующий псевдокод, который обрабатывает перестановку $$$p$$$ длины $$$n$$$$$$^{\text{∗}}$$$:
function mystery(p):
n = длина p
st = пустой стек
count = массив длины n из нулей
for i from 1 to n:
while st не пустой и p[i] < значение на вершине стека:
удалить элемент на вершине стека st
count[i] = count[i] + 1
положить p[i] в стек st
return count
Дан массив $$$a$$$ длины $$$n$$$. Ваша задача — посчитать количество перестановок $$$p$$$ длины $$$n$$$ таких, что если $$$b$$$ — массив, возвращаемый mystery(p), то условие $$$a_i = b_i$$$ выполняется для всех $$$i$$$ ($$$1 \le i \le n$$$), где $$$a_i \neq -1$$$.
Так как ответ может быть очень большим, выведите его по модулю $$$998\,244\,353$$$.
$$$^{\text{∗}}$$$Перестановкой длины $$$n$$$ является массив, состоящий из $$$n$$$ различных целых чисел от $$$1$$$ до $$$n$$$ в произвольном порядке. Например, $$$[2,3,1,5,4]$$$ — перестановка, но $$$[1,2,2]$$$ не перестановка ($$$2$$$ встречается в массиве дважды) и $$$[1,3,4]$$$ тоже не перестановка ($$$n=3$$$, но в массиве встречается $$$4$$$).
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 10^4$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит целое число $$$n$$$ ($$$1 \le n \le 500$$$), обозначающее длину $$$a$$$.
Вторая строка содержит $$$n$$$ целых чисел $$$a_1,a_2,\ldots,a_n$$$ ($$$-1 \le a_i \le n$$$), обозначающих элементы массива $$$a$$$.
Гарантируется, что сумма значений $$$n^3$$$ по всем наборам входных данных не превосходит $$$500^3$$$.
Для каждого набора входных данных выведите целое число — количество перестановок по модулю $$$998\,244\,353$$$.
7101-11140 0 -1 16-1 -1 -1 -1 -1 -130 1 070 -1 0 -1 2 1 -1
1103720277
В первом и втором наборах входных данных единственная подходящая перестановка — $$$[1]$$$.
В четвёртом наборе входных данных подходящие перестановки — $$$[1,2,4,3]$$$, $$$[3,4,2,1]$$$ и $$$[1,4,3,2]$$$.
В пятом наборе входных данных подходят все перестановки длины $$$6$$$.
| Название |
|---|


