在一个城市里有一座高层建筑,共有 $n$ 层。有 $n$ 个人在底楼等电梯。第 $i$ 个人想去第 $a_i$ 层。没有两个人想去同一层。
电梯足够大,可以容纳所有人,但它非常狭窄,两个人不能并排站立;他们必须一个接一个地站着。
每个人都进了电梯,但他们没有考虑离开电梯的顺序!最初,第 $i$ 个人位于位置 $i$(从电梯门看去)。如果一个人想要离开电梯,所有在他们前面(更靠近门)的人也必须暂时离开电梯。当他们回到电梯时,可以随心所欲地重新排列顺序。在想要离开的人后面(离门更远)的人不会离开电梯。
上面的插图展示了第一个样例中电梯里人的初始顺序。电梯在 1 楼,位置 3 的人想要离开。为了让他们离开,位置 1 和 2 的人也必须离开。
Mirko 正在观察他们所处的状况并进行思考。他想知道,如果返回电梯的人总是以最优方式返回,那么总共会有多少次离开电梯的情况。如果一个人多次离开电梯,每次都单独计算。
Mirko 是一位经验丰富的程序员,他可以很容易地解决这个问题。但他的快乐是短暂的,因为他身边的朋友 Slavko 提出了 $q$ 个问题:如果位置 $x_i$ 的人不在电梯里,那么会有多少次离开电梯的情况?
Mirko 对 Slavko 的第一个问题之前以及每个问题之后的结果都很感兴趣。注意,对于每个问题,之前所有问题中提到的人也都被认为不在电梯里。
Mirko 开始解决这个问题,但很快意识到即使对他来说,这也不太容易。帮帮他!
注意:电梯将始终从第一层移动到第 $n$ 层,并在任何有人想要离开的楼层停下。
输入格式
第一行包含两个非负整数 $n$ 和 $q$ ($0 \le q < n \le 10^5$),分别表示人数/楼层数和问题数。
第二行包含 $n$ 个整数 $a_i$ ($1 \le a_i \le n, a_i \neq a_j$ 对于所有 $i \neq j$),其中 $a_i$ 是第 $i$ 个人想要离开的楼层。序列 $(a_i)$ 是一个排列。
第三行包含 $q$ 个整数 $x_i$ ($1 \le x_i \le n, x_i \neq x_j$ 对于所有 $i \neq j$),即 Slavko 的问题。
输出格式
在一行中打印 $q+1$ 个数字,其中第 $i$ 个数字是第 $i-1$ 个问题之后的离开次数。
子任务
| 子任务 | 分值 | 数据范围 |
|---|---|---|
| 1 | 16 | $n, q \le 100$ |
| 2 | 19 | $n, q \le 1000$ |
| 3 | 29 | $q = 0$ |
| 4 | 46 | 无附加限制 |
样例
输入 1
5 2 3 4 1 2 5 3 2
输出 1
9 6 4
输入 2
7 0 4 5 2 1 6 3 7
输出 2
13
输入 3
3 2 3 1 2 1 2
输出 3
5 2 1
说明
第一个样例的说明:
插图展示了第一个查询之前离开电梯的情况。
电梯在第一层,位置 3 的人想要离开。但是,为了让他们离开,位置 1 和 2 的人必须先离开,然后他们以相同的位置回到电梯。
之后,在第二层,位置 4 的人想要离开。同样,位置 1 和 2 的人必须先离开,然后他们以相同的位置回到电梯。
之后,在第三层,位置 1 的人离开电梯,不需要其他人离开电梯。
之后,在第四层,位置 2 的人离开电梯,不需要其他人离开电梯。
最后,在第五层,位置 5 的人离开电梯。
总共,有 $3 + 3 + 1 + 1 + 1 = 9$ 次离开电梯的情况。
Figure 1. 上面的插图展示了第一个样例中电梯里人的初始顺序。