만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

최소 신장 트리

시간 제한1초메모리 제한256 MB

요약
간선 가중치가 1부터 m까지의 순열일 때, 처음 n-1개 간선이 이루는 트리가 정확히 최소 신장 트리가 되는 경우의 수를 998244353으로 나눈 나머지로 구합니다.
난이도

어려움10점 중 8점

유형
트리, 동적 계획법, 비트 연산, 조합론
정답자
아직 제출이 없습니다

문제

MianKing은 nn개의 정점과 mm개의 간선으로 이루어진 그래프를 가지고 있다. ii번째 간선 (xi,yi)(x_i, y_i)의 가중치는 wiw_i이다.

그래프의 최소 신장 트리는 간선 가중치의 합이 가장 작은 신장 트리이다.

MianKing은 가중치 w1…mw_{1 \dots m}을 잊어버렸다. 다만 이 가중치가 {1,…,m}\{1, \dots, m\}의 순열이라는 것과, 최소 신장 트리의 간선 집합이 처음 n−1n-1개의 간선이라는 것은 기억하고 있다.

위 조건을 만족하는 가중치 배정 w1…mw_{1 \dots m}의 개수를 구하라.

입력

첫째 줄에 두 정수 nn과 mm이 주어진다 (2≤n≤202 \leq n \leq 20, n−1≤m≤100n - 1 \leq m \leq 100).

이어서 mm개의 줄에 ii번째 간선의 양 끝점 xix_i, yiy_i가 정수 두 개로 주어진다 (1≤xi,yi≤n1 \le x_i, y_i \le n).

간선 (x1,y1),…,(xn−1,yn−1)(x_1, y_1), \ldots, (x_{n-1}, y_{n-1})은 nn개의 정점으로 이루어진 트리를 이룬다.

그래프에는 중복 간선과 자기 루프가 있을 수 있다.

출력

조건을 만족하는 w1…mw_{1 \dots m}의 개수를 998 244 353998\,244\,353으로 나눈 나머지를 출력한다.

예제3

  1. 예제 1

    입력
    3 3
    1 2
    2 3
    3 1
    
    예상 출력
    2
    
  2. 예제 2

    입력
    4 5
    1 2
    2 3
    2 4
    1 4
    1 2
    
    예상 출력
    25
    
  3. 예제 3

    입력
    3 6
    1 2
    2 3
    1 1
    1 1
    1 1
    1 1
    
    예상 출력
    720