해킹

아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

명찬은 최근에 게임 하나를 시작했다. 리버스 엔지니어링의 고수인 명찬은 게임을 뜯어 본 결과 이 게임에서 제공하는 던전 탐사 컨텐츠가 아래와 같은 구성을 지니고 있다는 것을 알아냈다.

  • 던전은 총 N(2N2105)N(2 \le N \le 2 \cdot 10^5)개의 방으로 구성되어 있다.
  • ii번째 방을 클리어하면 a_i(1a_iN,a_ii)a\_i( 1 \le a\_i \le N, a\_i \neq i) 번 방으로 이동하게 된다.
  • 플레이어는 NN개의 방 중 하나의 방을 골라 해당 방에서 탐사를 시작할 수 있다.
  • 플레이어는 던전 탐사의 결과로 방문한 방의 개수에 비례한 보상을 받게 된다. 같은 방에 여러 번 방문하여도 방문한 방의 개수는 하나로 생각한다.

명찬은 게임에서 최대의 이익을 보기 위해 게임을 해킹한 결과, ii번째 방을 클리어한 후 이동하게 되는 다음 방 a_ia\_i를 마음대로 바꿀 수 있게 됐다. 하지만 너무 많은 것을 바꾸면 운영진한테 걸릴 수 있으므로, 최대 하나의 방에 대해서만 a_ia\_i 값을 바꾸려고 한다.

이 때, 명찬이 방문 가능한 방의 최대 개수를 출력하여라.

입력

첫 줄에 방의 개수 NN이 주어진다(2 N21052 \le N \le 2 \cdot 10^5 ).

둘째 줄에 각 방을 클리어한 후 이동하게 되는 방의 번호 a_1,a_2,,a_Na\_1, a\_2, \dots, a\_N이 순서대로 공백으로 구분되어 주어진다(1a_iN1 \le a\_i \le N).

출력

첫째 줄에 명찬이 방문 가능한 방의 최대 개수를 출력한다.