// 見つけ次第後ろのやつと交換ってことで（原理不明）
// まあ前と後ろのどっちを交換するかで分かれるよね（1WA後)
package main

import "fmt"

func main() {
	var N int
	fmt.Scan(&N)
	A := make([]int, N)
	for i := 0; i < N; i++ {
		var j int
		fmt.Scan(&j)
		A[i] = j
	}
	A2 := append([]int{}, A...)
	ans1, ans2 := 0, 0
	for i := 1; i < N-1; i++ {
		if A[i+1] == i+2 || A[i] == i+1 {
			A[i], A[i+1] = A[i+1], A[i]
			ans1 += 1
		}
	}
	for i := 0; i < N-1; i++ {
		if A2[i] == i+1 || A2[i+1] == i+2 {
			A2[i], A2[i+1] = A2[i+1], A2[i]
			ans2 += 1
		}
	}
	fmt.Println(min(ans1, ans2))
}

func min(a, b int) int {
	if a < b {
		return a
	}
	return b
}
