여행

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

바이트랜드에는 11번부터 nn번까지 번호가 매겨진 nn개의 도시가 있습니다. 이 도시들은 mm개의 양방향 도로로 연결되어 있으며, 서로 다른 두 도시를 직접 잇는 도로는 최대 한 개뿐입니다.

바이트맨은 번호가 11번부터 kk번까지인 도시들을 특별히 좋아해서, 여행을 할 때마다 이 kk개의 도시를 각각 최소 한 번씩 방문합니다.

여행이란 연속한 두 도시가 항상 도로로 직접 연결되어 있는, dd개의 도시로 이루어진 수열입니다. 여행은 어느 도시에서 시작해서 어느 도시에서 끝나도 됩니다. 바이트맨이 할 수 있는 서로 다른 여행의 수를 구하세요. 두 여행은 도시의 수열이 다르면 서로 다른 것으로 봅니다. 이 값이 매우 클 수 있으므로, 109+910^9 + 9로 나눈 나머지를 출력합니다.

입력

첫 번째 줄에 네 정수 nn, mm, kk, dd가 공백으로 구분되어 주어집니다 (1n201 \le n \le 20, 1kmin(n,7)1 \le k \le \min(n, 7), 1d1091 \le d \le 10^9). 이어지는 mm개의 줄에는 각 도로의 정보가 주어지며, 각 줄에는 그 도로가 잇는 두 도시의 번호 aia_i, bib_i가 공백으로 구분되어 주어집니다 (1ai,bin1 \le a_i, b_i \le n, aibia_i \ne b_i).

출력

서로 다른 여행의 수를 109+910^9 + 9로 나눈 나머지 하나를 출력합니다.

힌트

첫 번째 예제에서는 도로가 1-2, 2-3, 3-1, 2-4이고, 바이트맨은 11번과 22번 도시를 반드시 방문해야 합니다. 길이가 33인 유효한 여행은 다음 1010가지입니다.

  • 1 → 2 → 1
  • 1 → 2 → 3
  • 1 → 2 → 4
  • 1 → 3 → 2
  • 2 → 1 → 2
  • 2 → 1 → 3
  • 2 → 3 → 1
  • 3 → 1 → 2
  • 3 → 2 → 1
  • 4 → 2 → 1