치트

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

문제

코스모는 젤다의 전설 시리즈의 잘 알려지지 않은 최신작 "황혼의 시간 가면을 쓴 하늘의 바람"을 하고 있다. 이 게임에서 플레이어는 젊은 모험가 링크가 되어 목표 nn개를 전부 완료해야 한다. 몇몇 목표는 다른 목표보다 먼저 끝내야 한다. 목표 ii (i=2,3,,ni = 2, 3, \dots, n)에는 선행 목표 PiP_i가 하나씩 있고, ii를 완료하려면 PiP_i를 먼저 완료해야 한다. 1번 목표에는 선행 목표가 없다. 선행 관계에는 순환이 없다.

이 게임에는 숨겨진 치트도 있다. 목표 ii (i=2,3,,ni = 2, 3, \dots, n)마다 치트가 하나씩 있고, 이 치트를 쓰면 ii를 선행 목표 PiP_i보다 먼저 완료할 수 있다. 그래도 순서를 완전히 무시하지는 못한다. 목표 ii에 치트를 쓰면 iiPiP_i 다음이 아니라 PiP_i의 선행 목표인 PPiP_{P_i} 다음에만 완료하면 된다. Pi=1P_i = 1이면 1번 목표에 선행 목표가 없으므로 ii는 아무 때나 완료할 수 있다.

가까운 목표에 치트를 몰아 쓰면 게임이 예측할 수 없게 동작한다. 목표 ii에 치트를 쓰면 PiP_i에는 치트를 쓸 수 없고, ii를 선행 목표로 갖는 목표에도 치트를 쓸 수 없다. 선행 관계로 바로 이어진 두 목표에 치트를 동시에 쓸 수는 없다. 선행 목표가 같은 두 목표에는 각각 치트를 쓸 수 있다.

코스모는 치트를 최대 kk번 쓰면서 게임을 끝내려고 한다. 이 규칙을 지키면서 목표 nn개를 모두 완료하는 순서가 몇 가지인지 세어라. 서로 다른 치트 조합으로 같은 순서를 만들 수 있어도 그 순서는 한 번만 센다. 답이 매우 클 수 있으므로 109+710^9+7로 나눈 나머지를 출력한다.

입력

입력은 테스트 케이스 여러 개로 이루어진다. 각 테스트 케이스의 첫 줄에 정수 nnkk가 주어진다 (1n2001 \le n \le 200, 0k<n0 \le k < n). nn은 목표의 수이고, kk는 코스모가 쓸 치트 횟수의 상한이다. 다음 줄에 정수 n1n-1개가 공백으로 구분되어 주어진다 (1pn1 \le p \le n). 차례대로 목표 2,3,,n2, 3, \dots, n의 선행 목표다. 1번 목표는 선행 목표가 없어서 이 목록에서 빠진다. n=1n = 1이면 이 줄은 비어 있다. 입력의 마지막 줄에는 0이 두 개 주어진다.

출력

각 테스트 케이스마다 코스모가 치트를 kk번 이하로 쓰면서 목표 nn개를 모두 완료하는 순서의 수를 109+710^9+7로 나눈 나머지로 한 줄에 하나씩 출력한다. 공백과 빈 줄은 출력하지 않는다.

힌트

첫 번째 예제에서 n=5n = 5이고 선행 목표는 P2=1P_2 = 1, P3=1P_3 = 1, P4=5P_4 = 5, P5=1P_5 = 1이다. 치트를 한 번도 쓰지 않는 순서가 12가지, 목표 4의 치트를 쓰는 순서가 12가지, 목표 5의 치트를 쓰는 순서가 8가지, 목표 2의 치트를 쓰는 순서와 목표 3의 치트를 쓰는 순서가 각각 3가지다. 모두 더하면 38이다.