#include <bits/stdc++.h>
using namespace std;
long long keta(long long x) {
  for (long long i = 0; i < 30; i++) {
    if (x < 10) {
      return i + 1;
    }
    x = x / 10;
  }
}
long long gcd(long long x, long long y) {
  long long aa = x, bb = y;
  for (long long i = 0; i < 1000; i++) {
    aa = aa % bb;
    if (aa == 0) {
      return bb;
    }
    bb = bb % aa;
    if (bb == 0) {
      return aa;
    }
  }
}
long long lcm(long long x, long long y) {
  long long aa = x, bb = y;
  for (long long i = 0; i < 1000; i++) {
    aa = aa % bb;
    if (aa == 0) {
      return x / bb * y;
    }
    bb = bb % aa;
    if (bb == 0) {
      return x / aa * y;
    }
  }
}
bool p(long long x) {
  if (x == 1) return false;
  for (long long i = 2; i < sqrt(x) + 1; i++) {
    if (x % i == 0 && x != i) {
      return false;
    }
  }
  return true;
}
long long max(long long a, long long b) {
  if (a >= b)
    return a;
  else
    return b;
}
long long min(long long a, long long b) {
  if (a >= b)
    return b;
  else
    return a;
}
long long n2[41];
long long nis[41];
long long nia[41];
long long mody[41];
long long nn;
long long com(long long n, long long y) {
  long long ni = 1;
  for (long long i = 0; i < 41; i++) {
    n2[i] = ni;
    ni *= 2;
  }
  long long bunsi = 1, bunbo = 1;
  for (long long i = 0; i < y; i++) bunsi = (bunsi * (n - i)) % 1000000007;
  for (long long i = 0; i < y; i++) bunbo = (bunbo * (i + 1)) % 1000000007;
  mody[0] = bunbo;
  for (long long i = 1; i < 41; i++) {
    bunbo = (bunbo * bunbo) % 1000000007;
    mody[i] = bunbo;
  }
  for (long long i = 0; i < 41; i++) nis[i] = 0;
  nn = 1000000007 - 2;
  for (long long i = 40; i >= 0; i -= 1) {
    if (nn > n2[i]) {
      nis[i]++;
      nn -= n2[i];
    }
  }
  nis[0]++;
  for (long long i = 0; i < 41; i++) {
    if (nis[i] == 1) {
      bunsi = (bunsi * mody[i]) % 1000000007;
    }
  }
  return bunsi;
}
long long yakuwa(long long n) {
  long long sum = 0;
  for (long long i = 1; i < sqrt(n + 1); i++) {
    if (n % i == 0) sum += i + n / i;
    if (i * i == n) sum -= i;
  }
  return sum;
}
bool hei(long long n) {
  for (long long i = 0; i < 100; i++) {
    if (i * i == n) {
      return true;
    }
  }
  return false;
}
long long pow(long long b, long long a) {
  long long aa = 1;
  for (long long i = 0; i < a; i++) aa *= b;
  return aa;
}
long long a[114514];
long long b[114514];
long long c[114514];
signed main() {
  long long n;
  cin >> n;
  long long sum = 0;
  for (long long i = 0; i < n; i++) {
    cin >> a[i];
    if (a[i] == i + 1) {
      b[sum] = i;
      sum++;
    }
  }
  for (long long i = 0; i < sum - 1; i++) {
    c[i] = sum;
    if (b[i + 1] - b[i] == 1 && c[i - 1] != c[i - 2]) sum -= 1;
  }
  cout << sum << endl;
}
