https://www.acmicpc.net/problem/31409
모든 전화기는 자기 자신 또는 다른 전화기를 가르키고 있어야 한다.
모든 전화기가 사이클 내부에 포함되어야 하는 것은 아니다.
사이클이 만들어지지 않으려면 마지막 전화기는 자기 자신을 가르키고 있어야 한다.
즉, 모든 전화기는 자기 자신만 가르키지 않으면 모든 전화를 먹통으로 만들 수 있다.
n = int(input())
a = [0] + list(map(int,input().split()))
ans=0
if a[1] == 1:
a[1] = 2
ans = 1
for i in range(2, n+1):
if a[i] == i:
a[i] = 1
ans += 1
print(ans)
print(*a[1:])