6008 - NOI:离线CDQ分治: [CQOI2011] 动态逆序对(带单点删除的二维偏序)

通过次数

1

提交次数

2

时间限制 : 1 秒
内存限制 : 512 MB

对于序列 a,它的逆序对数定义为集合

[ { (i,j) \mid i < j \land a_i > a_j } ]

中的元素个数。

现在给出 1\sim n 的一个排列,按照某种顺序依次删除 m 个元素,你的任务是在每次删除一个元素之前统计整个序列的逆序对数。

输入

第一行包含两个整数 nm,即初始元素的个数和删除的元素个数。
以下 n 行,每行包含一个 1 \sim n 之间的正整数,即初始排列。
接下来 m 行,每行一个正整数,依次为每次删除的元素。

输出

输出包含 m 行,依次为删除每个元素之前,逆序对的个数。

样例

输入

5 4
1
5
3
4
2
5
1
4
2

输出

5
2
2
1

提示

【数据范围】 对于 100\% 的数据,1\le n \le 10^51\le m \le 50000

【样例解释】
删除每个元素之前的序列依次为:
1,5,3,4,2
1,3,4,2
3,4,2
3,2