MianKing posiada graf o $n$ wierzchołkach i $m$ krawędziach, gdzie $i$-ta krawędź $(x_i, y_i)$ ma wagę $w_i$. Minimalne drzewo rozpinające grafu to drzewo rozpinające o minimalnej sumie wag krawędzi. MianKing zapomniał wagi $w_1 \dots m$, ale wciąż pamięta, że $w_1 \dots m$ są permutacją zbioru $\{1 \dots m\}$ oraz że zbiór krawędzi minimalnego drzewa rozpinającego tego grafu składa się z pierwszych $n - 1$ krawędzi. Musisz pomóc MianKingowi obliczyć, ile jest takich permutacji $w_1 \dots m$, które spełniają powyższe warunki. Wynik może być bardzo duży, więc należy go podać modulo $998\,244\,353$.
Wejście
Pierwsza linia zawiera dwie liczby całkowite $n$ oraz $m$ ($2 \le n \le 20$, $n - 1 \le m \le 100$). Następnie podanych jest $m$ linii, gdzie $i$-ta linia zawiera dwie liczby całkowite $x_i$ oraz $y_i$ ($1 \le x_i, y_i \le n$). Gwarantuje się, że krawędzie $(x_1, y_1), \dots, (x_{n-1}, y_{n-1})$ tworzą drzewo o $n$ wierzchołkach. Zauważ, że graf może zawierać krawędzie wielokrotne oraz pętle własne.
Wyjście
Wypisz wynik modulo $998\,244\,353$.
Przykład
Wejście 1
3 3 1 2 2 3 3 1
Wyjście 1
2
Wejście 2
4 5 1 2 2 3 2 4 1 4 1 2
Wyjście 2
25
Wejście 3
3 6 1 2 2 3 1 1 1 1 1 1 1 1
Wyjście 3
720