MianKing은 $n$개의 노드와 $m$개의 간선으로 이루어진 그래프를 가지고 있으며, $i$번째 간선 $(x_i, y_i)$의 가중치는 $w_i$입니다. 그래프의 최소 신장 트리(Minimum Spanning Tree)는 간선 가중치의 합이 최소가 되는 신장 트리입니다.
MianKing은 가중치 $w_{1 \dots m}$을 잊어버렸지만, $w_{1 \dots m}$이 $\{1 \dots m\}$의 순열이며 이 그래프의 최소 신장 트리를 구성하는 간선 집합이 처음 $n-1$개의 간선으로 이루어져 있다는 사실은 기억하고 있습니다.
이제 MianKing을 도와 위 조건을 만족하는 $w_{1 \dots m}$의 개수를 계산해 주세요. 답이 매우 클 수 있으므로 $998\,244\,353$으로 나눈 나머지를 출력하면 됩니다.
입력
첫 번째 줄에는 두 정수 $n$과 $m$ ($2 \le n \le 20$, $n-1 \le m \le 100$)이 주어집니다.
그다음 $m$개의 줄이 주어지며, $i$번째 줄에는 두 정수 $x_i$와 $y_i$ ($1 \le x_i, y_i \le n$)가 주어집니다.
간선 $(x_1, y_1), \dots, (x_{n-1}, y_{n-1})$은 $n$개의 노드로 이루어진 트리를 형성함이 보장됩니다.
그래프에는 다중 간선과 자기 루프가 존재할 수 있음에 유의하세요.
출력
답을 $998\,244\,353$으로 나눈 나머지를 출력하세요.
예제
예제 입력 1
3 3 1 2 2 3 3 1
예제 출력 1
2
예제 입력 2
4 5 1 2 2 3 2 4 1 4 1 2
예제 출력 2
25
예제 입력 3
3 6 1 2 2 3 1 1 1 1 1 1 1 1
예제 출력 3
720