#CF2000H. Ksyusha 与已加载集合

Ksyusha 与已加载集合

H. Ksyusha 与已加载集合

  • 每个测试的时间限制:33
  • 内存限制:512512 兆字节

Ksyusha 决定创办一家游戏开发公司。为了在竞争中脱颖而出并取得成功,她决定编写自己的游戏引擎。该引擎必须支持一个初始包含 nn 个不同整数 a1,a2,,ana_1, a_2, \dots, a_n 的集合。

该集合将依次经历 mm 个操作。操作类型包括:

  • 向集合中插入元素 xx
  • 从集合中删除元素 xx
  • 查询集合的 kk-负载

集合的 kk-负载 定义为最小的正整数 dd,使得整数 d,d+1,,d+(k1)d, d+1, \dots, d+(k-1) 都不出现在集合中。
例如,集合 {3,4,6,11}\{3,4,6,11\}33-负载是 77,因为 7,8,97,8,9 都不在集合中,且没有更小的 dd 满足条件。

Ksyusha 忙于管理工作,因此你需要来编写这个引擎。请高效地支持上述操作。


输入

第一行包含一个整数 tt1t1041 \le t \le 10^4)—— 测试用例的数量。

接下来是各个测试用例的描述。

每个测试用例的第一行包含一个整数 nn1n21051 \le n \le 2 \cdot 10^5)—— 集合的初始大小。

第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1a1<a2<<an21061 \le a_1 < a_2 < \dots < a_n \le 2 \cdot 10^6)—— 集合的初始状态。

第三行包含一个整数 mm1m21051 \le m \le 2 \cdot 10^5)—— 操作的数量。

接下来的 mm 行包含操作,操作格式如下:

  • + x1x21061 \le x \le 2 \cdot 10^6)—— 向集合中插入元素 xx(保证 xx 不在集合中);
  • - x1x21061 \le x \le 2 \cdot 10^6)—— 从集合中删除元素 xx(保证 xx 在集合中);
  • ? k1k21061 \le k \le 2 \cdot 10^6)—— 输出集合的 kk-负载。

保证所有测试用例的 nn 之和不超过 21052 \cdot 10^5mm 之和也不超过 21052 \cdot 10^5


输出

对于每个测试用例,输出所有 ? 操作的结果。


示例

输入:

3
5
1 2 5 905 2000000
15
- 2
? 2
? 1
- 1
? 1
+ 4
+ 2
? 2
+ 6
- 4
+ 7
? 2
? 3
? 4
? 2000000
5
3 4 5 6 8
9
? 5
- 5
? 5
+ 1
? 2
- 6
- 8
+ 6
? 5
5
6 7 8 9 10
10
? 5
- 6
? 4
- 10
+ 5
- 8
+ 3
+ 2
- 3
+ 10

输出:

2 2 1 6 3 8 8 2000001 
9 9 9 7 
1 1