주고받기

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

문제

경기과학고에 재학 중인 NN명의 학생들은 연말마다 선물을 주고받는 기념비적인 행사를 진행한다. 학교에서 주관하는 중요한 행사인 만큼, 모두가 참여하여 미리 선물을 준비하고 전달한다. 그러나 선물을 받지 못해 슬퍼하는 학생이 있어서는 안 되기 때문에 아래와 같은 세 가지 기본 규칙이 있다.

  1. 모든 학생은 처음에 각자 하나의 선물을 준비한다.
  2. 1iN1 \leq i \leq N을 만족하는 모든 정수 ii에 대해, ii번 학생은 11 이상 NN 이하의 정수 A_iA\_{i}을 골라 둔다. 이때, 서로 다른 학생은 다른 정수를 골라야 한다.
  3. 모든 학생이 동시에 선물을 주고받는다. 구체적으로, ii번 학생은 A_iA\_{i}번 학생에게 지금 가지고 있는 선물을 준다. 2번 규칙에 의해, ii번 학생은 A_j=iA\_{j}=i를 만족하는 유일한 jj번 학생으로부터 선물을 받는다는 것을 알 수 있다.

물론 A_i=iA\_{i}=i여서 ii번 학생이 자신에게 선물을 주는 것도 가능하다.

경기과학고의 행사 관리자인 여러분은 위 규칙이 완벽하다고 생각했기 때문에, 규칙을 따로 바꾸지 않고 몇 년 동안 행사를 그대로 이어 왔다. 그러나 행사의 만족도는 점차 떨어졌고 작년의 만족도 조사에서는 대부분의 학생들이 '이 행사의 의미를 잘 모르겠다'라고 답했다. 이유를 물어 보니, 누구한테서 선물을 받을지가 너무 뻔하다는 것이었다. 따라서 올해는 학생들에게 알리지 않은 채로 아래 규칙을 추가해서 행사를 진행했다.

  • 3번 규칙을 총 KK번 반복한다.

그러자 ii번 학생이 처음 가지고 있던 선물은 B_iB\_{i}번 학생에게로 가게 되었고, 모든 학생은 신선하다며 높은 만족도를 보였다. 여러분 또한 새로운 규칙에 만족했다. 그러다 문득 각 학생이 2번 규칙에서 어떤 수를 골랐는지 알고 싶어졌다. ii번 학생이 처음 가지고 있던 선물을 최종적으로 받게 된 학생의 번호 B_iB\_{i}들의 배열 \[B_1,B_2,...,B_N]\[B\_{1}, B\_{2}, ..., B\_{N}]이 주어졌을 때, ii번 학생이 2번 규칙에서 고른 자연수 A_iA\_{i}들의 배열 \[A_1,A_2,...,A_N]\[A\_{1}, A\_{2}, ..., A\_{N}]로 가능한 것의 개수를 구해 보자.

입력

첫 번째 줄에 두 양의 정수 NN, KK가 공백을 사이에 두고 주어진다. (1N,K1000)(1 \le N, K \le 1000)

두 번째 줄에는 NN개의 양의 정수가 공백을 사이에 두고 주어진다. ii번째 수는 ii번 학생이 처음 가지고 있던 선물을 최종적으로 받게 된 학생의 번호 B_iB\_{i}를 의미한다. (1B_iN)(1 \le B\_{i} \le N)

출력

첫 번째 줄에 ii번 학생이 고른 자연수 A_iA\_{i}들의 배열 \[A_1,A_2,...,A_N]\[A\_{1}, A\_{2}, ..., A\_{N}]으로 가능한 것의 개수를 109+710^9+7로 나눈 나머지를 출력한다.