编程题
### 问题描述
小蓝是一个年轻有为的武器大师,他正在进行一场特训。
他手上有一个由数字编号 $1$ 到 $N$ 的武器组成的武器序列 $A$,他可以进行一种特殊的操作训练:将武器序列中的两个相邻武器交换位置。
小蓝希望通过不断训练这个操作,将原有的武器序列变成一个新的 $B$,使得对于所有的 $1\le i\le N$,都满足 $B_i\ne i$。也就是说,武器序列 $B$ 中的任意一个武器都不能和它在原序列 $A$ 中的位置相同。
现在小蓝想知道,至少需要进行多少次操作训练才能达到这个目标呢?
### 输入格式
输入共 $2$ 行。
第一行包含一个整数 $N$($1\leq N \leq 10^5$),表示武器序列的长度。
第二行包含 $N$ 个整数 $p_1,p_2,\ldots,p_N$($1\leq p_i \leq N$),$p_1, p_2, \ldots, p_N$ 是 $1,2,\ldots,N$ 的一个排列,表示武器的编号。
### 输出格式
输出一个整数,表示将初始武器序列变换成满足 $B_i\ne i$ 的武器序列所需的最小操作训练次数。
### 样例输入
```
5
3 1 4 5 2
```
### 样例输出
```
2
```