#include <iostream>
using namespace std;
int main() {
int n;
cin>>n;
int a=1,s,cnt=0,k,z,c=1,bnt=0;
int A[n];
for(int i=0;i<n;i++){
cin>>A[i];
}
for(int i=0;i<n;){
if(c){ //前面設定i為k 只用一次
k=i;
c--;
}
if(A[k]!=-1){
if(a){ //前面設定k為a 只用一次
s=k; //紀錄第一個朋友
a--;
}
z=k;
k=A[k]; //將原本A[k]之值變為索引,之後繼續循環
A[z]=-1; //用過就變-1
}
if(s==k){ //如果頭尾相同
cnt++; //多一個群體
a=1; //還原a
for(int j=0;j<n;j++){ //從第一個元素開始找不是-1的值
if(A[j]!=-1){
k=j; //設定k為下一個開始尋找的數
break;
}else{
bnt++; //如果是-1 bnt++
}
}
if(bnt==n){
break; //結束整個迴圈
}
bnt=0;//如果沒結束就歸零到時候重新計算
}
}
cout<<cnt;//輸出團體個數
return 0;
}