몬스터가 사는 다크 라이드

잘못 배치된 몬스터의 순열이 주어질 때, 모든 몬스터를 제자리에 놓는 데 필요한 최소 교환 횟수를 구한다.

보통4배열그래프구현수학아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

다크 라이드 놀이기구에서는 좁은 궤도를 달리는 열차가 관람객을 태우고 여러 방을 차례로 지난다. 각 방에는 IT 몬스터가 한 마리씩 있고, 몬스터는 온갖 짓궂은 방법으로 관람객을 놀래키도록 프로그래밍되어 있다. 그런데 알 수 없는 이유로 몇몇 몬스터가 엉뚱한 방에 설치되었다. 몬스터가 아니라 직원인 프레디와 모르시아가 몬스터를 올바른 방으로 다시 옮겨야 한다.

혼란과 위험을 키우지 않으려고 두 사람은 에피소드 단위로 일한다. 한 에피소드에서 두 사람은 서로 다른 방 두 개를 고른다. 프레디가 한 방의 몬스터를 집어 다른 방으로 옮기고, 모르시아는 그 다른 방의 몬스터를 집어 프레디가 방금 몬스터를 꺼낸 방으로 옮긴다. 결국 한 에피소드에서 두 방의 몬스터가 서로 자리를 바꾼다. 에피소드를 몇 번 거친 뒤에는 모든 몬스터가 올바른 방에 있어야 한다. 몬스터를 옮기는 일은 고되기 때문에 두 사람은 에피소드 횟수를 최소로 줄이려 한다.

입력

입력은 여러 개의 테스트 케이스로 이루어지며 파일의 끝에서 끝난다. 각 테스트 케이스는 두 줄이다.

첫째 줄에는 방의 개수 NN (1N2×1051 \le N \le 2 \times 10^5)이 주어진다. 방에는 1,2,,N1, 2, \dots, N의 번호가 붙어 있고, 몬스터에도 1,2,,N1, 2, \dots, N의 번호가 붙어 있다. 각 방의 번호는 그 방에 올바르게 설치된 몬스터의 번호와 같다.

둘째 줄에는 현재 각 방에 설치된 몬스터의 번호 NN개가 주어진다. 줄의 첫 번째 번호가 가리키는 몬스터는 1번 방에, 두 번째 번호가 가리키는 몬스터는 2번 방에 설치되어 있고, 그다음도 같은 방식이다.

출력

각 테스트 케이스마다 모든 몬스터를 올바른 방에 설치하는 데 필요한 최소 에피소드 횟수를 한 줄에 하나씩 출력한다.