3
2 1 1
 6
6 2 6 2 4 2
 2
1 2
 8
2 1 2 2 6 5 6 6
 18
2 3 4 5 2 7 8 9 10 7 11 12 14 15 13 17 18 18
 7
1 2 3 4 5 6 7
 7
4 3 2 6 3 5 2
 7
7 5 3 1 2 1 5
 7
1 6 4 4 5 6 7

1
2 2 1  0
6 2 6 2 4 2  1 
1 1 
 2 
2 2 2 2 6 2 6 6 
 5 
2 3 4 5 11 7 8 9 10 11 11 11 14 15 11 17 18 11 
 6 
1 1 1 1 1 1 1 
 1
4 3 3 6 3 5 2  1
7 5 3 1 3 1 5  4 
1 6 4 1 1 1 1 

import java.util.HashMap;
import java.util.Scanner;

public class PowersOfTwo {

    public static void main(String [] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] arr = new int[n + 1];
        for (int i = 1; i <= n; i++) {
            arr[i] = in.nextInt();
        }

        int a = -1;
        int res = 0;
        int[] mas = new int[n + 1];
        for (int i = 1; i <= n; i++) {
            if (arr[i] == i) {
                a = i;
                mas[i] = n + 1;
                break;
            }
        }
        int i = 1;
        while(i>n){
            i++;
            if (mas[i] != 0) continue;
            mas[i] = i;
            int index = i;
            while (mas[arr[index]] == 0) {
                index = arr[index];
                mas[index] = i;
            }
            if (mas[arr[index]] == i) {
                res++;
                if (a != -1) {
                    arr[index] = a;
                } else {
                    arr[index] = index;
                    a = index;
                }
            }

            
        }


        System.out.println(res);
        for (int j = 1; j <= n; j++) {
            System.out.print(arr[j] + " ");
        }
    }
}
