#include <bits/stdc++.h>
using namespace std;
int t[200005], p[200005];
int nr, ko, zm;
void wal(int co) {
  t[co] = nr;
  if (p[co] == co) {
    if (ko == -1 || ko == co)
      ko = co;
    else {
      zm++;
      p[co] = ko;
    }
  } else {
    if (t[p[co]] == nr) {
      zm++;
      if (ko == -1) {
        ko = co;
        p[co] = co;
      } else
        p[co] = ko;
    } else if (t[p[co]] == 0)
      wal(p[co]);
  }
}
int main() {
  int n, m, k, z, a, b, c, d, e, f;
  scanf("%d", &n);
  ko = -1;
  for (a = 1; a <= n; a++) {
    scanf("%d", &p[a]);
    if (p[a] == a) ko = a;
  }
  nr = zm = 0;
  for (a = 1; a <= n; a++)
    if (!t[a]) {
      nr++;
      wal(a);
    }
  printf("%d\n", zm);
  for (a = 1; a <= n; a++) printf("%d ", p[a]);
  return 0;
}
