만드는 중입니다

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

회로

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

요약
1번을 출발점, n번을 도착점으로 하는 직렬-병렬 회로에서 전선을 일부 제거해 트리를 만드는 경우의 수를 998244353으로 나눈 나머지로 구합니다.
난이도

보통10점 중 7점

유형
그래프, 동적 계획법, 수학
정답자
아직 제출이 없습니다

문제

지제냐는 학교 물리 실습 시간에 전기를 공부한다. 그의 다음 과제는 전기 회로망을 분석하는 것이다.

전기 회로망은 선으로 연결된 노드의 집합이다. 노드 중 하나는 소스 노드이고, 다른 하나는 싱크 노드이다. 이 문제의 회로망은 올바른 회로망이다.

회로망은 다음 규칙으로 만들 수 있으면 올바르다.

  • 소스 노드와 싱크 노드가 선 하나로 연결된 기본 회로망은 올바르다.
  • 올바른 회로망 A, B가 있을 때, A의 싱크 노드와 B의 소스 노드를 합친 회로망 S(A, B)는 올바르다. 결과 회로망의 소스 노드는 A의 소스 노드이고, 싱크 노드는 B의 싱크 노드이다.
  • 올바른 회로망 A, B가 있을 때, A와 B의 소스 노드를 합치고 A와 B의 싱크 노드도 합친 회로망 P(A, B)는 올바르다. 결과 회로망의 소스 노드는 합쳐진 소스 노드이고, 싱크 노드는 합쳐진 싱크 노드이다.
  • 올바른 회로망은 모두 기본 회로망에서 위의 두 규칙을 유한번 적용해 만들 수 있다.

지제냐는 일부 선을 제거해 남은 선들이 트리를 이루는 방법의 수를 세려고 한다. 트리란 임의의 두 노드 사이에 선을 따라 가는 경로가 정확히 하나 있는 그래프이다.

방법의 수를 998 244 353998\,244\,353으로 나눈 나머지를 구하라.

입력

첫 줄에 두 정수 nn, mm이 주어진다. 각각 노드의 수와 선의 수이다 (1≤n,m≤100 0001 \le n,m \le 100\,000).

이어지는 mm개의 줄에는 정수 aa, bb가 주어지며, 이는 노드 aa와 bb가 선으로 연결되어 있다는 뜻이다 (1≤a,b≤n1 \le a, b \le n; a≠ba \ne b).

주어진 회로망은 올바른 회로망이다. 소스 노드는 1번, 싱크 노드는 n번 노드이다. 올바른 회로망에서는 같은 노드 쌍 사이에 선이 여러 개 있을 수 있다.

출력

남은 선들이 트리를 이루도록 선을 제거하는 방법의 수를 998 244 353998\,244\,353으로 나눈 나머지로 한 줄에 출력한다.

힌트

첫 번째와 세 번째 예제에서는 선을 어느 하나든 제거할 수 있다.

두 번째 예제에서는 선 (1, 6)과 다른 선 하나를 제거할 수 있다. 또는 1-2-4-6 사슬과 1-3-5-6 사슬에서 선을 하나씩 제거할 수 있다.

예제3

  1. 예제 1

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

    입력
    6 7
    1 2
    1 3
    1 6
    2 4
    3 5
    4 6
    5 6
    
    예상 출력
    15
    
  3. 예제 3

    입력
    2 2
    1 2
    1 2
    
    예상 출력
    2