问题 G: cats 的集合 1

内存限制:512 MB 时间限制:12 S
题面:传统 评测方式:文本比较 上传者:
提交:1 通过:1

题目描述

cats 需要维护一个可重集 S。开始时,可重集中存在 n 个元素 p1, p2, · · · , pn。然后,cats 对集合进行了 m 次操作。

操作分为以下 5 种: 

1 a:在可重集中加入元素 a。 

2 a:将可重集中的每个元素都变为其与 a 按位或运算的结果。 

3 a:将可重集中的每个元素都变为其与 a 按位与运算的结果。 

4 a:将可重集中的每个元素都变为其与 a 按位异或运算的结果。

 5 a:查询可重集中每一个元素与 a 按位异或运算结果中的最大值。 





输入格式

第一行一个整数 T(1 ≤ T ≤ 1000),表示测试数据的组数。 

接下来包含 T 组测试数据。 每组数据第一行为两个整数 n, m (1 ≤ n, m ≤ 2 × 10^5 ),分别表示开始时 S 中元素的个数,cats 需要 进行的操作次数。 

接下来一行包含 n 个整数 p1, p2, · · · , pn (0 ≤ pi < 2 ^31),表示开始时 S 中的元素。

 接下来 m 行每行两个整数 opt, a (1 ≤ opt ≤ 5, 0 ≤ a < 2 ^31),表示一次操作。

保证每组测试数据中至 少包含一次操作 5。

 保证所有测试数据的 n 之和不超过 1.5 · 10^6,保证所有测试数据的 m 之和不超过 1.5 · 10^6。


输出格式

对于每个 5 操作输出一行一个正整数,表示可重集中元素所有元素与 a 按位异或运算结果的最大值。

输入样例 复制

1
5 10
1 2 3 4 5
5 1
1 10
5 2
2 3
5 3
3 12
5 4
4 7
5 5
5 13

输出样例 复制

5
8
8
12
10
14