A nie muszę sam szukać po dziedzińcach, By spotkać młodzieńca, co resztę życia spędzi słuchając gry na cytrze.
Dany jest prosty graf nieskierowany $G$ o $n$ wierzchołkach. Kopiujemy go $k$ razy, otrzymując graf nieskierowany o $kn$ wierzchołkach i $km$ krawędziach. Niech $f_k$ oznacza liczbę sposobów na znalezienie dopasowania w dopełnieniu tego grafu. Zauważ, że dopasowanie nie musi być dopasowaniem doskonałym.
Dla każdego $k = 1, \dots, l$ oblicz $f_k \pmod{998244353}$.
Wejście
W pierwszej linii znajdują się dwie dodatnie liczby całkowite $n, l$.
Następnie podana jest macierz 01 o wymiarach $n \times n$. Gwarantuje się, że $G_{i,j} = G_{j,i}$ oraz $G_{i,i} = 0$. Wartość $G_{i,j} = 1$ oznacza, że istnieje krawędź między wierzchołkami $(i, j)$.
Wyjście
Wypisz $l$ linii, z których każda zawiera jedną liczbę. W $k$-tej linii wypisz $f_k \pmod{998244353}$.
Przykład
Wejście 1
4 5 0 1 1 1 1 0 0 1 1 0 0 0 1 1 0 0
Wyjście 1
3 321 58963 19412193 957504186
Ograniczenia
Dla $100\%$ danych gwarantuje się, że $1 \le l \le 3 \times 10^5$; $1 \le n \le 40$.
Istnieje $20$ zestawów danych, wygenerowanych za pomocą iloczynu kartezjańskiego:
$$(n, l) \in \{20, 30, 36, 40\} \times \{1, 10^2, 10^4, 10^5, 3 \times 10^5\}$$
Za przejście zestawu danych odpowiadającego $(n_i, l_j)$ przyznane zostanie $a_i \cdot b_j$ punktów, gdzie
$$a = [4, 3, 2, 1], b = [3, 3, 2, 1, 1]$$