#6. 黑盒子

黑盒子

Description

黑盒子代表一个原始数据库,保存一个整数数组和一个特殊的i 变量。

在最初的时刻,黑盒子是空的,i=0i =0。 黑盒子处理一系列命令(事务),有以下两种类型的事务。

  • ADD(x ):将元素 xx 放入黑盒子。
  • GET:将 ii 增加 11,并给出包含在黑盒子中的所有整数中第 ii 小的值。第 ii 小的值是黑盒子中按非降序排序后的第 ii 个位置的数字。

示例如下。

image 写一个有效的算法来处理给定的事务序列。ADDADDGETGET 事务的最大数量均为 3000030 000。用两个整数数组来描述事务的顺序。 (1)A(1),A(2),,A(M)A(1),A(2),…,A(M ):包含在黑盒子中的一系列元素。AA 值是绝对值不超过 20000000002 000 000 000 的整数,M30000M ≤30 000 。对于示例,序列A=(3,1,4,2,8,1000,2)A=(3, 1, -4, 2, 8, -1000, 2)。 (2)u(1),u(2),,u(N)u (1),u (2),…,u (N ):表示在第 11 个,第 22 个,…,第 NN GETGET 事务时包含在黑盒子中的元素个数。对于示例,u=(1,2,6,6u =(1, 2, 6, 6)

假设自然数序列 u(1),u(2),,u(N) u (1),u (2),…,u (N ) 按非降序排序,NMN ≤M 且 每个p1pNp (1≤p ≤N ) 对不等式 pu(p)Mp ≤u (p )≤M 都有效。由此得出这样 的事实:对于 uu 序列的第 pp 个元素,执行 GETGET 事务,给出 A(1),A(2),,A(u(p))A(1),A(2),…,A(u (p ))序列第 pp 小的数。

Input

输入包含M,N,A(1),A(2),,A(M),u(1),u(2),,u(N)M ,N ,A(1) ,A(2) ,…,A(M ) ,u (1) ,u (2) ,…,u (N)

Output

根据给定的事务顺序输出答案序列,每行一个数字

Samples

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