排序

题目描述

有 $n$ 个人依次站在小 A 面前。小 A 会依次对这 $n$ 个人进行 $m$ 次操作。 每次操作选择一个位置 $k$,将这 $n$ 个人中的所有身高小于等于当前 $k$ 位置的人的身高的人从队伍里拎出,然后按照身高从矮到高的顺序从左到右依次插入到 这些人原本的位置当中。 小 A 对这 $n$ 个人身高构成的序列的逆序对很感兴趣。现在小 A 想要知道每一次操作后这个序列的逆序对数。 ---- Update(2021-01-17):$a$ 序列中的逆序对的定义是满足 $i < j$ 且 $a_i > a_j$ 的数对 $(i, j)$。

输入输出格式

输入格式


第一行两个整数 $n$ 和 $m$,表示人数和操作数。 接下来一行 $n$ 个整数 $a_i$,表示初始状态从左到右每个人的身高。 接下来 $m$ 行每行一个数,表示这次操作的 $k$。

输出格式


输出共 $m + 1$ 行,第一行表示未操作时的逆序对数量。 除第一行外第 $i$ 行表示第 $i - 1$ 次操作后序列的逆序对数。

输入输出样例

输入样例 #1

5 2
1 5 3 4 2
3
4

输出样例 #1

5
4
3

说明

**【样例解释 #1】** 第一次操作后序列为 $1, 5, 2, 4, 3$。 第二次操作后序列为 $1, 5, 2, 3, 4$。 **【数据范围】** 对于 $100 \%$ 的数据,$1 \le n,m \le 3 \times {10}^5$,$1 \le k \le n$,$1 \le a_i \le {10}^9$。