#1534. 黑匣子

黑匣子

题目描述

Black Box是一种原始的数据库。它可以储存一个整数数组,还有一个特别的变量io\red{i_{o}}最开始的时候Black Box是空的,而i\red{i}等于0\red{0}。这个Black Box要处理一串命令。

命令只有两种:

ADDx\red{ADD(x)}:把x\red{x}元素放进Black Box;

GET\red{GET}i\red{i}1\red{1},然后输出Black box中第i\red{i}小的数。

牢记:第i\red{i}小的数,就是Black Box里的数的按从小到大的顺序排序后的第i\red{i}个元素。

例如:我们来演示一下一个有11\red{11}个命令的命令串。(如下图所示)

编号 命令 i\red{ i } 黑匣子内容 输出
1\red{ 1 } ADD(3)\red{ ADD(3) } 0\red{ 0 } 3\red{ 3 }
2\red{ 2 } GET\red{ GET } 1\red{ 1 } 3\red{ 3 }
3\red{ 3 } ADD(1)\red{ ADD(1)} 1,3\red{ 1,3 }
4\red{ 4 } GET\red{ GET } 2\red{ 2 } 1,3\red{ 1,3 } 3\red{ 3 }
5\red{ 5 } ADD(4)\red{ ADD(-4) } 4,1,3\red{ -4,1,3 }
6\red{ 6 } ADD(2)\red{ ADD(2) } 2\red{ 2 } 4,1,2,3\red{ -4,1,2,3 }
7\red{ 7 } ADD(8)\red{ ADD(8) } 2\red{ 2 } 4,1,2,3,8\red{ -4,1,2,3,8 }
8\red{ 8 } ADD(1000)\red{ ADD(-1000) } 2\red{ 2 } 1000,4,1,2,3,8\red{ -1000,-4,1,2,3,8 }
9\red{ 9 } GET\red{ GET } 3\red{ 3 } 1\red{ 1 }
10\red{ 10 } 4\red{ 4 } 2\red{ 2}
11\red{ 11 } ADD(2)\red{ ADD(2) }

现在要求找出对于给定的命令串的最好的处理方法。ADD\red{ADD}GET\red{GET}命令分别最多有200000\red{200000}个。

现在用两个整数数组来表示命令串:

1.A(1),A(2),A(M)\red{1.A(1),A(2),…A(M)}:一串将要被放进Black Box的元素。每个数都是绝对值不超过2000000000\red{2000000000}的整数,M200000\red{M≤200000}。例如上面的例子就是A=3,1,4,2,8,1000,2\red{A=(3,1,-4,2,8,-1000,2)}

2.u(1),u(2),u(N)\red{2.u(1),u(2),…u(N)}:表示第u(j)\red{u(j)}个元素被放进了Black Box里后就出现一个GET\red{GET}命令。例如上面的例子中u=(1,2,6,6)\red{u=(1,2,6,6)}。输入数据不用判错。

输入格式

第一行,两个整数,MN\red{M,N}。第二行,M\red{M}个整数,表示A1AM\red{A(1)……A(M)}。第三行,N\red{N}个整数,表示u(1)u(N)\red{u(1)…u(N)}

输出格式

根据命令串所得出的输出串,一个数字一行。

样例

输入样例

7 4
3 1 -4 2 8 -1000 2
1 2 6 6

输出样例

3
3
1
2

提示

对于30%\red{30\%}的数据,M10000\red{M≤10000}

对于50%\red{50\%}的数据,M100000\red{M≤100000}

对于100%\red{100\%}的数据,M20000\red{M≤20000}