#include #include using namespace std; using namespace atcoder; #define ll long long #define rep(i,n) for (int i = 0; i < (n); i++) #define coutf(f) cout << fixed << setprecision(f) #define all(v) (v).begin(), (v).end() #define rall(v) (v).rbegin(), (v).rend() int main() { int n; cin >> n; vector p(n); rep(i, n) cin >> p[i]; rep(i, n) p[i]--; dsu uf(n); rep(i, n) uf.merge(i, p[i]); int ans = n; rep(i, n) if (uf.leader(i) == i) ans--; cout << ans << endl; return 0; }