한동이는 공부하기 싫어!

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

요약
각 노드가 정확히 하나의 다른 노드를 가리키는 함수형 그래프에서, 반복되기 전까지 방문하는 서로 다른 노드 수가 최대인 시작 노드를 찾고 동일하면 가장 작은 번호를 출력합니다.
난이도

보통10점 중 5점

유형
그래프, DFS, 조합론
정답자
아직 제출이 없습니다

문제

H-ALGO 회원인 한동이는 공부를 좋아하지 않는다. 하지만 공부하지 않고도 어려운 시험을 통과하고 싶어 한다.

어느 날 한동이의 동기가 한동이에게, 선배들 중 누군가가 시험의 답을 알고 있을지도 모른다는 정보를 알려주었다. 하지만 실제로는 선배들도 정답을 알지 못했고, 각자 다른 누군가가 알고 있을 것 같다는 정보만 가지고 있었다.

한동이가 i번 선배에게 물어보면, 그 선배는 다음으로 물어볼 선배 한 명의 번호를 알려준다. 한동이는 알려준 선배를 찾아가 같은 질문을 계속할 수 있다. 이미 만난 선배를 다시 만나게 되면, 그 뒤로는 새로운 선배를 더 만날 수 없다.

한동이는 처음에 물어볼 선배를 정확히 한 명 고를 수 있다. 서로 다른 선배를 최대한 많이 만나려면 누구에게 먼저 물어봐야 하는지 구하라. 가능한 답이 여러 개라면 번호가 가장 작은 선배를 고른다.

입력

첫째 줄에 정수 N이 주어진다. N은 2 이상 1000 이하의 자연수이다. 선배들은 1번부터 N번까지 번호가 붙어 있다.

다음 N개의 줄에는 정수가 하나씩 주어진다. 이 중 i번째 줄의 정수는 i번 선배가 알려주는 선배의 번호이다.

출력

한동이가 처음으로 물어봐야 할 선배의 번호를 첫째 줄에 출력한다. 정답이 여러 개라면 그중 가장 작은 번호를 출력한다.

예제3

  1. 예제 1

    입력
    3
    3
    3
    1
    
    예상 출력
    2
    
  2. 예제 2

    입력
    4
    2
    3
    4
    1
    
    예상 출력
    1
    
  3. 예제 3

    입력
    6
    2
    3
    4
    3
    1
    1
    
    예상 출력
    5