L. 异或双端队列

内存限制:512 MiB 时间限制:2000 ms 标准输入输出
题目类型:传统 评测方式:文本比较

题目描述

在这题你需要维护一个支持异或变换操作的双端队列。

我们定义队列中第个元素为,队首位置为,队尾位置为。你将读取并执行以下六种操作:

: 在队首插入整数,换句话说,队列将变成

: 输出并弹出队首,换句话说,你需要输出,然后将队列置为。保证

: 在队尾插入整数,换句话说,队列将变成

: 输出并弹出队尾,换句话说,你需要输出,然后将队列置为。保证

: 输出,保证

: 对队列进行异或变换。异或变换定义为,设原队列为,变换后队列为,则。其中,为异或运算,保证对于输入的,变换后的序列也是合法的,即

输入格式

第一行一个正整数 ,为操作次数。

下面 行,每行有若干个整数,含义如题意所述。

对于所有操作,保证

输出格式

对于每一个操作2、4和5,输出答案。

样例

样例输入

12
6 6
1 2
3 1
1 3
3 4
5 2
6 2
5 2
2
4
6 1
5 0

样例输出

1
3
1
2
3

数据范围与提示

每轮操作完毕的队列情况:

:

:

:

:

:

:

:

:

: