编程题
### 问题描述
面包师傅面前有 $n$ 个圆形的面包片,这些面包片从上而下的半径为 $r_1,r_2,\dots,r_n$,面包师傅能够保证没有两个面包片的半径相同。
为了美观,面包师傅需要把面包片按照半径从小到大的顺序自上而下摆放。面包师傅改变面包顺序的方法为,每次那次最上面的若干个面包片并将这些面包片上下翻转。
面包师傅想请你帮他求出,他最少翻转几次面包片就能使所有面包片从小到大排序。
### 输入格式
输入第一行包含一个整数 $n$,含义见上文。
第二行包含 $n$ 个整数 $r_1,r_2,\dots,r_n$,表示面包片的半径。
### 输出格式
输出一个整数,表示面包片的最少翻转次数。
### 样例输入
```
5
2 4 3 5 1
```
### 样例输出
```
5
```
### 评测数据规模
对于所有评测数据,$1\leq{n}\leq{16},1\leq{r_i}\leq{100}$。