저금통

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

문제

용 Byteazar는 저금통 NN개를 가지고 있습니다. 각 저금통은 자신에게 맞는 열쇠로 열거나 부술 수 있습니다. Byteazar는 열쇠들을 저금통 안에 넣어 두었고, 어떤 열쇠가 어떤 저금통에 들어 있는지 모두 기억하고 있습니다. 자동차를 사려는 그는 모든 저금통에 접근해야 하지만, 되도록 적은 수의 저금통만 부수고 싶어 합니다.

저금통을 (열쇠로 열든 부수든) 일단 열면 그 안에 든 열쇠들을 꺼낼 수 있고, 그 열쇠로 대응하는 저금통을 부수지 않고 열 수 있습니다. 이 과정은 연쇄적으로 반복됩니다. 모든 저금통에 접근하기 위해 반드시 부숴야 하는 저금통의 최소 개수를 구하세요.

다음을 수행하는 프로그램을 작성하세요.

  • 표준 입력에서 저금통의 개수와 각 열쇠가 놓인 저금통의 번호를 읽는다.
  • 모든 저금통에 접근하기 위해 부숴야 하는 저금통의 최소 개수를 구한다.
  • 그 결과를 표준 출력에 출력한다.

입력

첫째 줄에 저금통의 개수를 나타내는 정수 NN (1N1061 \le N \le 10^6)이 주어집니다. 저금통과 그에 대응하는 열쇠는 11부터 NN까지 번호가 매겨져 있습니다. 이어지는 NN개의 줄 중 ii번째 줄에는 ii번 열쇠가 들어 있는 저금통의 번호를 나타내는 정수 하나가 주어집니다.

출력

모든 저금통에 접근하기 위해 부숴야 하는 저금통의 최소 개수를 정수 하나로 한 줄에 출력합니다.

힌트

예제 입력에서는 저금통 11번과 44번을 부숴야 합니다. 11번을 부수면 그 안에 든 22번 열쇠로 22번 저금통을 열 수 있고, 22번 저금통 안의 11번과 33번 열쇠로 11번과 33번 저금통을 열 수 있습니다. 44번 저금통에는 자기 자신의 열쇠만 들어 있으므로 따로 부숴야 합니다.