#include<iostream>
using namespace std;
long long n,b[100050],ans;
struct node{
long long z;
long long w;
}a[100050];
bool check(node x,long long k,long long cnt)
{
if(x.w==k&&cnt>0){return 1;}
if(b[x.w]==k*k){return 0;}
b[x.w]=k*k;
long long ww=x.w;
long long zz=x.z;
check(a[x.z],k,cnt+1);
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i].z;
a[i].w=i;
}
for(int i=1;i<=n;i++)
{
if(check(a[i],i,0)==1)
{
ans++;
}
}
cout<<ans;
return 0;
}