#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 10005;
int parent[MAX_N], my_rank[MAX_N];
int find_set(int v) {
  if (v == parent[v]) return v;
  parent[v] = find_set(parent[v]);
  return parent[v];
}
void link_set(int x, int y) {
  if (my_rank[x] > my_rank[y])
    parent[y] = x;
  else
    parent[x] = y;
  my_rank[y] += (my_rank[x] == my_rank[y]);
}
int main() {
  int n;
  cin >> n;
  for (int i = 1; i <= n; i++) parent[i] = i;
  int cnt = n;
  for (int i = 1; i <= n; i++) {
    int x;
    cin >> x;
    int a = find_set(i);
    int b = find_set(x);
    if (a != b) {
      link_set(a, b);
      cnt--;
    }
  }
  cout << cnt;
  return 0;
}
