만드는 중입니다

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

캑터스 개수 세기

시간 제한2초메모리 제한512 MB

요약
정점이 최대 13개인 그래프에서 연결된 캑터스가 되는 간선 부분집합의 개수를 998244353으로 나눈 나머지로 구합니다.
난이도

어려움10점 중 8점

유형
비트 연산, 동적 계획법, 그래프
정답자
아직 제출이 없습니다

문제

NEERC에서는 캑터스(cactus)에 관한 문제가 여러 번 출제되었다. 캑터스는 모든 간선이 최대 하나의 단순 사이클에 속하는 연결된 무방향 그래프이다. 직관적으로 캑터스는 일부 사이클을 허용하는 트리의 일반화이다. 아래 그림은 NEERC 2007 문제에 나온 캑터스이다.

Dreamoon에게 무방향 그래프가 있다. Dreamoon은 이 그래프의 부분 그래프(간선의 부분집합) 중 캑터스인 것이 몇 개인지 알고 싶어 한다. 그 개수를 998 244 353으로 나눈 나머지를 구해 줄 수 있겠는가?

입력

첫 줄에 정수 nn과 mm이 주어진다. 각각 그래프의 정점 개수와 간선 개수이다. (1≤n≤131 \le n \le 13, 0≤m≤n(n−1)20 \le m \le \frac{n(n-1)}{2})

다음 mm개의 줄에 간선이 하나씩 주어진다. ii번째 줄에는 정수 aia_i와 bib_i가 주어지며, 이는 정점 aia_i와 bib_i를 잇는 간선이다. (1≤ai,bi≤n1 \le a_i, b_i \le n, ai≠bia_i \ne b_i) 같은 간선이 두 번 주어지지 않는다.

출력

캑터스인 부분 그래프의 개수를 998 244 353으로 나눈 나머지를 한 줄에 출력한다.

힌트

Dreamoon, 미안해요.

예제3

  1. 예제 1

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

    입력
    5 0
    
    예상 출력
    0
    
  3. 예제 3

    입력
    8 9
    1 5
    1 8
    2 4
    2 8
    3 4
    3 6
    4 7
    5 7
    6 8
    
    예상 출력
    35