코스모는 젤다의 전설 시리즈의 잘 알려지지 않은 최신작 "황혼의 시간 가면을 쓴 하늘의 바람"을 하고 있다. 이 게임에서 플레이어는 젊은 모험가 링크가 되어 목표 n개를 전부 완료해야 한다. 몇몇 목표는 다른 목표보다 먼저 끝내야 한다. 목표 i (i=2,3,…,n)에는 선행 목표 Pi가 하나씩 있고, i를 완료하려면 Pi를 먼저 완료해야 한다. 1번 목표에는 선행 목표가 없다. 선행 관계에는 순환이 없다.
이 게임에는 숨겨진 치트도 있다. 목표 i (i=2,3,…,n)마다 치트가 하나씩 있고, 이 치트를 쓰면 i를 선행 목표 Pi보다 먼저 완료할 수 있다. 그래도 순서를 완전히 무시하지는 못한다. 목표 i에 치트를 쓰면 i는 Pi 다음이 아니라 Pi의 선행 목표인 PPi 다음에만 완료하면 된다. Pi=1이면 1번 목표에 선행 목표가 없으므로 i는 아무 때나 완료할 수 있다.
가까운 목표에 치트를 몰아 쓰면 게임이 예측할 수 없게 동작한다. 목표 i에 치트를 쓰면 Pi에는 치트를 쓸 수 없고, i를 선행 목표로 갖는 목표에도 치트를 쓸 수 없다. 선행 관계로 바로 이어진 두 목표에 치트를 동시에 쓸 수는 없다. 선행 목표가 같은 두 목표에는 각각 치트를 쓸 수 있다.
코스모는 치트를 최대 k번 쓰면서 게임을 끝내려고 한다. 이 규칙을 지키면서 목표 n개를 모두 완료하는 순서가 몇 가지인지 세어라. 서로 다른 치트 조합으로 같은 순서를 만들 수 있어도 그 순서는 한 번만 센다. 답이 매우 클 수 있으므로 109+7로 나눈 나머지를 출력한다.
입력은 테스트 케이스 여러 개로 이루어진다. 각 테스트 케이스의 첫 줄에 정수 n과 k가 주어진다 (1≤n≤200, 0≤k<n). n은 목표의 수이고, k는 코스모가 쓸 치트 횟수의 상한이다. 다음 줄에 정수 n−1개가 공백으로 구분되어 주어진다 (1≤p≤n). 차례대로 목표 2,3,…,n의 선행 목표다. 1번 목표는 선행 목표가 없어서 이 목록에서 빠진다. n=1이면 이 줄은 비어 있다. 입력의 마지막 줄에는 0이 두 개 주어진다.
각 테스트 케이스마다 코스모가 치트를 k번 이하로 쓰면서 목표 n개를 모두 완료하는 순서의 수를 109+7로 나눈 나머지로 한 줄에 하나씩 출력한다. 공백과 빈 줄은 출력하지 않는다.
첫 번째 예제에서 n=5이고 선행 목표는 P2=1, P3=1, P4=5, P5=1이다. 치트를 한 번도 쓰지 않는 순서가 12가지, 목표 4의 치트를 쓰는 순서가 12가지, 목표 5의 치트를 쓰는 순서가 8가지, 목표 2의 치트를 쓰는 순서와 목표 3의 치트를 쓰는 순서가 각각 3가지다. 모두 더하면 38이다.