만드는 중입니다

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

지식 중심 문제

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

요약
그래프 G를 k개 복사하고 같은 번호의 정점끼리 이웃한 복사본에 간선으로 잇습니다. 만들어진 그래프의 신장 트리 개수를 10^9+7로 나눈 나머지로 구합니다.
난이도

어려움10점 중 9점

유형
행렬, 수학, 조합론
정답자
아직 제출이 없습니다

문제

많은 지식을 쌓은 뒤 지식 중심의 문제를 하나 만들기로 했다. nn개의 정점과 mm개의 간선을 가진 무방향 그래프 GG가 주어진다. 이 그래프를 kk개 복사하여 G1,G2,…,GkG_1, G_2, \ldots, G_k라고 한다. 모든 1≤i≤k−11 \le i \le k-1과 모든 1≤u≤n1 \le u \le n에 대해, 복사본 GiG_i의 정점 uu와 Gi+1G_{i+1}의 정점 uu를 간선으로 잇는다. 이렇게 만든 새 그래프의 신장 트리 개수를 109+710^9 + 7로 나눈 나머지로 구한다.

입력

첫 줄에 세 정수 nn, mm, kk가 주어진다 (1≤n≤5001 \le n \le 500, 0≤m≤n(n−1)20 \le m \le \frac{n(n-1)}{2}, 1≤k≤10181 \le k \le 10^{18}). 다음 mm개의 줄에는 무방향 간선 (u,v)(u, v)를 나타내는 두 정수 uu, vv가 주어진다 (1≤u,v≤n1 \le u, v \le n, u≠vu \ne v). 모든 간선은 서로 다르다.

출력

새 그래프의 신장 트리 개수를 109+710^9 + 7로 나눈 나머지를 한 정수로 출력한다.

예제3

  1. 예제 1

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

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

    입력
    5 10 1000000000000000000
    1 2
    1 3
    1 4
    1 5
    2 3
    2 4
    2 5
    3 4
    3 5
    4 5
    
    예상 출력
    569698435