#include using namespace std; #define rep(i, a, b) for (int i = a; i < b; i++) using ll = long long; int main(){ int n; cin >> n; vector p(n), in(n), v(n); rep(i, 0, n) { cin >> p[i]; p[i]--; } vector> g(n); rep(i, 0, n) { if(p[i] < 0) continue; g[i].push_back(p[i]); in[p[i]]++; } using P = pair; queue

q; rep(i, 0, n) { if(in[i]) continue; q.push({i, 0}); } while(q.size()) { int u, d; tie(u, d) = q.front(); q.pop(); if(d == 2) { v[u]++; continue; } for(int e : g[u]) { q.push({e, d + 1}); } } int ans = 0; rep(i, 0, n) if(v[i]) ans++; cout << ans << endl; }