만드는 중입니다

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

오일러 간선 칠하기

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

요약
무방향 그래프에서 모든 정점의 차수가 짝수인 간선 부분집합마다 간선 수 x의 제곱을 구하고, 그 합을 10^9+7로 나눈 나머지를 구합니다.
난이도

어려움10점 중 8점

유형
그래프, 수학, DFS
정답자
아직 제출이 없습니다

문제

무향 그래프가 오일러 그래프일 필요충분조건은 모든 정점의 차수가 짝수인 것이다.

유우카에게 정점이 nn개, 간선이 mm개인 무향 그래프가 있다. 정점은 1,2,…,n1, 2, \dots, n으로 번호가 매겨져 있다. 처음에는 모든 간선이 파란색이다. 유우카는 간선 일부를 빨간색으로 칠하고 나머지는 파란색으로 둔다. 빨간 간선만으로 이루어진 부분 그래프가 오일러 그래프이면, 빨간 간선의 개수 xx에 대해 x2x^2을 카운터에 더한다. 카운터는 간선을 칠하는 2m2^m가지 방법 모두에 대해 합산한다. 카운터 값을 (109+7)(10^9+7)로 나눈 나머지를 구하라.

입력

입력에는 여러 개의 테스트 케이스가 주어지며, 입력의 끝은 EOF로 구분된다. 각 테스트 케이스는 다음과 같다.

첫 줄에 정수 nn, mm이 주어진다 (1≤n≤2⋅1051 \leq n \leq 2 \cdot 10^5, 0≤m≤2⋅1050 \leq m \leq 2 \cdot 10^5).

이어지는 mm개 줄의 ii번째 줄에는 간선의 양 끝점 aia_i, bib_i가 주어진다 (1≤ai,bi≤n1 \leq a_i, b_i \leq n).

모든 테스트 케이스에 걸쳐 nn의 합과 mm의 합은 각각 2⋅1052 \cdot 10^5를 넘지 않는다.

출력

각 테스트 케이스마다 결과를 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    4 4
    1 2
    1 3
    1 4
    2 3
    6 6
    1 2
    2 3
    3 1
    4 5
    5 6
    6 4
    2 3
    1 1
    1 2
    1 2
    
    예상 출력
    9
    54
    14