카드 섞기

시간 제한1초메모리 제한128 MB

문제

결함이 있는 카드 셔플 기계는 덱을 항상 똑같은 방식으로 섞습니다. 카드에는 $1, 2, 3, \dots, N$ 번호를 붙이며, 여기서 $N$은 전체 카드 수입니다(서로 다른 덱에서 온 같은 카드는 서로 다른 카드로 취급합니다). 기계가 고장 났기 때문에, 같은 카드 묶음을 넣으면 항상 하나의 고정된 재배열이 적용됩니다.

그래도 덱을 기계에 0번 이상 통과시키고, 나온 결과를 순서 그대로 다시 넣는 방식으로 여러 가지 배열을 만들 수 있습니다. 예를 들어 기계가 $1, 2, 3, 4$를 $2, 3, 4, 1$로 바꾼다면, 그 결과를 다시 통과시키면 $3, 4, 1, 2$가 됩니다.

이렇게 해도 모든 배열을 만들 수 있는 것은 아닙니다. 기계의 고정된 셔플과 원하는 목표 배열이 주어질 때, 목표 배열에 도달하기 위해 기계를 통과시켜야 하는 최소 횟수를 구하거나, 불가능하면 그 사실을 출력하세요.

입력

입력은 여러 개의 테스트 케이스로 이루어집니다. 각 케이스는 세 줄로 구성됩니다.

  • 첫째 줄에는 카드의 수 $N$이 주어집니다 ($1 \le N \le 520$).
  • 둘째 줄에는 $1, 2, \dots, N$을 어떤 순서로 나열한 것이 공백으로 구분되어 주어집니다. 이는 덱 $1, 2, \dots, N$을 기계에 통과시켰을 때 나오는 배열, 즉 기계의 고정된 셔플입니다.
  • 셋째 줄에는 같은 형식으로 만들고자 하는 목표 배열이 주어집니다.

입력의 끝은 $N = 0$인 줄로 표시되며, 이 줄은 처리하지 않습니다.

출력

각 케이스마다 목표 배열에 도달하는 데 필요한 최소 통과 횟수(0 이상)를 한 줄에 출력하고, 불가능하면 $-1$을 출력합니다. 답은 항상 부호 있는 32비트 정수 범위에 들어간다고 가정해도 됩니다.