F. Игра с раскрашиванием
ограничение по времени на тест
5 секунд
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Алиса и Боб собираются сыграть в игру. У них есть $$$n$$$ раскрашенных полосок бумаги; $$$i$$$-я полоска поделена на $$$a_i$$$ клеток, пронумерованных от $$$1$$$ до $$$a_i$$$. Каждая клетка может быть раскрашена в один из $$$3$$$ цветов.

В самом начале игры Алиса и Боб ставят на полоски $$$n$$$ фишек, $$$i$$$-я фишка ставится в клетку $$$a_i$$$ полоски $$$i$$$. Затем игроки совершают ходы по очереди, Алиса ходит первой. В процессе хода игрок должен выбрать ровно одну фишку и подвинуть ее на $$$1$$$, $$$2$$$ или $$$3$$$ клетки к началу полоски (если текущая клетка имеет номер $$$x$$$, то можно подвинуть фишку в клетку $$$x - 1$$$, $$$x - 2$$$ или $$$x - 3$$$). Есть два ограничения: фишка не может покидать пределы полоски (например, если фишка находится в ячейке $$$3$$$, нельзя подвинуть ее на $$$3$$$ ячейки); и некоторые ходы могут быть недоступны из-за цвета текущей клетки (эти запреты обозначаются матрицей $$$f$$$ размера $$$3 \times 3$$$, где $$$f_{i, j} = 1$$$, если можно подвинуть фишку на $$$j$$$ клеток к началу полоски из клетки с цветом $$$i$$$, или $$$f_{i, j} = 0$$$, если этот ход недоступен). Игрок, который не может сделать ход, проигрывает.

Изначально некоторые клетки могут быть бесцветными. Боб может покрасить все бесцветные клетки так, как он хочет (но нельзя оставлять бесцветную клетку бесцветной). Назовем раскраску хорошей, если Боб может выиграть игру при любых действиях Алисы, если клетки окрашены в соответствии с этой раскраской. Две раскраски считаются различными, если существует хотя бы одна клетка, которая в этих раскрасках имеет разные цвета.

Боб хочет посчитать количество хороших раскрасок. Можете ли вы сделать это для него?

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

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

В первой строке задано одно целое число $$$n$$$ — количество полосок ($$$1 \le n \le 1000$$$).

Во второй строке заданы $$$n$$$ целых чисел $$$a_1$$$, $$$a_2$$$, ..., $$$a_n$$$ ($$$1 \le a_i \le 10^9$$$), где $$$a_i$$$ — количество клеток в $$$i$$$-й полоске.

В третьей строке задано одно целое число $$$m$$$ ($$$1 \le m \le 1000$$$) — количество изначально окрашенных клеток.

Затем следуют $$$m$$$ строк, каждая из которых обозначает окрашенную клетку. $$$i$$$-я строка содержит три целых числа $$$x_i$$$, $$$y_i$$$ и $$$c_i$$$ ($$$1 \le x_i \le n$$$, $$$1 \le y_i \le a_{x_i}$$$, $$$1 \le c_i \le 3$$$), обозначающие, что клетка $$$y_i$$$ в полоске $$$x_i$$$ окрашена в цвет $$$c_i$$$. Гарантируется, что если $$$i \ne j$$$, то $$$x_i \ne x_j$$$, или $$$y_i \ne y_j$$$ (или и то, и другое сразу).

Затем следуют $$$3$$$ строки, $$$i$$$-я строка содержит $$$3$$$ целых числа $$$f_{i, 1}$$$, $$$f_{i, 2}$$$, $$$f_{i, 3}$$$ ($$$0 \le f_{i, j} \le 1$$$). Если $$$f_{i, j} = 1$$$, то можно переместить фишку на $$$j$$$ клеток к началу полоски из клетки с цветом $$$i$$$; если же $$$f_{i, j} = 0$$$, то такой ход невозможен.

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

Выведите количество хороших раскрасок по модулю $$$998244353$$$.

Примеры
Входные данные
3
3 4 5
2
1 1 1
2 2 2
1 1 1
1 0 0
0 1 1
Выходные данные
14346
Входные данные
1
1
1
1 1 1
1 1 1
1 1 1
1 1 1
Выходные данные
1
Входные данные
3
1 1 1
1
1 1 1
1 1 1
1 1 1
1 1 1
Выходные данные
9