#include <bits/stdc++.h>
using namespace std;
template <class T>
inline void mini(T &a, T b) {
  if (b < a) a = b;
}
template <class T>
inline void maxi(T &a, T b) {
  if (b > a) a = b;
}
int L[100005];
bool l[100005];
int main() {
  int n, x, fp = 0;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d", &x);
    if (x == i) {
      l[i] = true;
      fp++;
    }
    L[i] = x;
  }
  bool flag = false;
  for (int i = 0; i < n; i++) {
    if (!l[i]) {
      if (L[L[i]] == i) {
        fp += 2;
        flag = true;
      }
    }
    if (flag) break;
  }
  if (!flag && fp < n) fp++;
  printf("%d\n", fp);
  return 0;
}
