А мне не нужно в одиночку бродить по пустым дворам, Чтобы встретить юношу, играющего на цитре до конца моих дней.
Дан неориентированный простой граф $G$ с $n$ вершинами. Мы копируем его $k$ раз, получая неориентированный граф с $kn$ вершинами и $km$ ребрами. Обозначим через $f_k$ количество способов выбрать паросочетание в дополнении этого графа. Заметим, что паросочетание не обязательно должно быть совершенным.
Для каждого $k = 1, \dots, l$ вычислите $f_k \pmod{998244353}$.
Входные данные
В первой строке заданы два целых положительных числа $n, l$.
Далее следует матрица смежности размера $n \times n$, состоящая из 0 и 1, где $G_{i,j} = G_{j,i}$ и $G_{i,i} = 0$. Значение $G_{i,j} = 1$ означает, что между вершинами $(i, j)$ есть ребро.
Выходные данные
Выведите $l$ строк, по одному числу в каждой строке. В $k$-й строке выведите $f_k \pmod{998244353}$.
Примеры
Входные данные 1
4 5 0 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0
Выходные данные 1
3 321 58963 19412193 957504186
Ограничения
Для 100% данных гарантируется $1 \le l \le 3 \times 10^5$ и $1 \le n \le 40$.
Всего имеется 20 тестов, сгенерированных с использованием декартова произведения: $(n, l) \in \{20, 30, 36, 40\} \times \{1, 10^2, 10^4, 10^5, 3 \times 10^5\}$.
Соответствующие пары $(n_i, l_j)$ определяются как $a_i \cdot b_j$, где: $a = [40, 36, 30, 20]$, $b = [3 \times 10^5, 10^5, 10^4, 10^2, 1]$.