编程题
### 问题描述
小齐有 $N$ 头奶牛,编号为 $1, 2, 3, \ldots, N$,站成一排,排列顺序为 $p_1, p_2, p_3, \ldots, p_N$。小齐站在第一头奶牛前,想通过一系列指令,让奶牛们按照顺序 $1, 2, 3, \ldots, N$ 排列。
奶牛们有点困,每次只有正对着小齐的那头奶牛能听懂他的指令。在一个时间步中,小齐可以命令正对着他的奶牛向前移动 $k$ 步,其中 $k$ 为 $1$ 到 $N-1$ 之间的任意整数。在这个过程中,前进的 $k$ 头奶牛会给让出一段位置,让小齐的奶牛插入到这段位置之后。
小齐迫不及待地想要完成排序,以便能够返回农舍吃早餐。请帮助他找到以最少时间步数完成排序的指令序列。
### 输入格式
第一行包含一个整数 $N$,表示奶牛的数量 。
第二行包含 $N$ 个空格分隔的整数 $p_1, p_2, \ldots, p_N$,表示奶牛初始的排列顺序。
### 输出格式
第一行包含一个整数 $K$,表示完成排序所需的最少时间步数。
第二行包含 $K$ 个空格分隔的整数 $c_1, c_2, \ldots, c_K$,每个 $c_i$ 表示在第 $i$ 步中,小齐向正对着他的奶牛发送的移动步数 $k$。
### 样例输入
```
4
1 2 4 3
```
### 样例输出
```
3
2 2 3
```
### 评测数据规模
$1 \leq N \leq 10^5$,$1 \leq c_i \leq N-1$。