용 Byteazar는 저금통 N개를 가지고 있습니다. 각 저금통은 자신에게 맞는 열쇠로 열거나 부술 수 있습니다. Byteazar는 열쇠들을 저금통 안에 넣어 두었고, 어떤 열쇠가 어떤 저금통에 들어 있는지 모두 기억하고 있습니다. 자동차를 사려는 그는 모든 저금통에 접근해야 하지만, 되도록 적은 수의 저금통만 부수고 싶어 합니다.
저금통을 (열쇠로 열든 부수든) 일단 열면 그 안에 든 열쇠들을 꺼낼 수 있고, 그 열쇠로 대응하는 저금통을 부수지 않고 열 수 있습니다. 이 과정은 연쇄적으로 반복됩니다. 모든 저금통에 접근하기 위해 반드시 부숴야 하는 저금통의 최소 개수를 구하세요.
다음을 수행하는 프로그램을 작성하세요.
첫째 줄에 저금통의 개수를 나타내는 정수 N (1≤N≤106)이 주어집니다. 저금통과 그에 대응하는 열쇠는 1부터 N까지 번호가 매겨져 있습니다. 이어지는 N개의 줄 중 i번째 줄에는 i번 열쇠가 들어 있는 저금통의 번호를 나타내는 정수 하나가 주어집니다.
모든 저금통에 접근하기 위해 부숴야 하는 저금통의 최소 개수를 정수 하나로 한 줄에 출력합니다.
예제 입력에서는 저금통 1번과 4번을 부숴야 합니다. 1번을 부수면 그 안에 든 2번 열쇠로 2번 저금통을 열 수 있고, 2번 저금통 안의 1번과 3번 열쇠로 1번과 3번 저금통을 열 수 있습니다. 4번 저금통에는 자기 자신의 열쇠만 들어 있으므로 따로 부숴야 합니다.