OIG I - ban

// tresc: https://szkopul.edu.pl/problemset/problem/NQamRQ2UZEwn6gPqo-l6nat9/site/?key=statement
// OIG I (2 etap)

#include <iostream>
#include <vector>

constexpr int MILION = 1000000;

const int sizik = MILION + 8;
bool arr[sizik];

std::vector<int> kra[sizik];

int DFS(int v) {
    if (arr[v]) {
        return 0;
    }

    arr[v] = true;

    for (int i = 0; i < kra[v].size(); i++) {
        DFS(kra[v][i]);
    }

    return 1;
}

int main() {
    std::ios_base::sync_with_stdio(0);
    std::cin.tie(0);
    std::cout.tie(0);

    int n;
    std::cin >> n;

    for (int i = 1; i <= n; i++) {
        int a;
        std::cin >> a;

        kra[i].push_back(a);
    }

    int stoly = 0;
    for (int i = 1; i <= n; i++) {
        stoly += DFS(i);
    }

    std::cout << stoly;

    return 0;
}