당신에게는 노드 개수가 $N$인 이진 트리가 있다. 당신은 이 이진 트리를 중위 순회하는 순서대로 노드들의 번호를 $1$부터 차례대로 매겼다. 그리고 부모가 위, 자식이 아래에 위치하게끔 왼쪽에서 오른쪽으로 번호 순서대로 늘어놓았다. 아래 그림은 그렇게 이진 트리를 늘어놓은 예시이다. 이때, $i$번 노드의 점수 $A_i$를 다음과 같이 정의한다:
노드의 개수 $N$과 노드들의 점수 $A_i$가 주어졌을 때, 이진 트리를 복원해 보자. 답이 최대 한 가지만 존재함을 증명할 수 있다.

첫 번째 줄에 노드의 개수를 나타내는 정수 $N$이 주어진다. 두 번째 줄에 각 노드의 점수를 나타내는 $N$개의 정수 $A_1,A_2,\cdots ,A_N$이 공백으로 구분되어 주어진다.
해당 점수를 갖는 이진 트리가 있는 경우는 첫 번째 줄에 $N$개의 정수 $B_1,B_2,\cdots ,B_N$을 공백으로 구분해 출력한다.
$B_i$는 $i$번 노드의 부모 노드의 번호이다. $i$번 노드의 부모 노드가 없는 경우 $B_i=0$이다.
해당 점수를 갖는 이진 트리가 없는 경우는 첫 번째 줄에 -1을 대신 출력한다.
루트가 $x$인 이진 트리를 중위 순회하는 순서대로 방문하는 함수 $f(x)$를 다음과 같이 정의할 수 있다.