编程题
### 问题描述
松松有一个数列 $a_1, a_2, \dots, a_n$,每个 $a_i$ 都是小于 $2^m$ 的非负整数。
现在请您实现三种操作,格式说明如下:
- $1$ $x$ $y$ $w$:对于所有 $x \leq i \leq y$,将 $a_i$ 修改为 $a_i \oplus w$。其中 $w$ 是一个小于 $2^m$ 的非负整数。
- $2$ $x$ $y$ $w$:对于所有 $x \leq i \leq y$,将 $a_i$ 修改为 $w$。其中 $w$ 是一个小于 $2^m$ 的非负整数。
- $3$:从 $a_1, a_2, \dots, a_n$ 中选出若干个数,使得选出的数异或和最大。请输出这个最大值。
这里 $\oplus$ 表示按位异或运算,$x_1, x_2, \dots, x_l$ 的异或和是指 $x_1 \oplus x_2 \oplus \dots \oplus x_l$。
### 输入格式
第一行三个正整数 $n, m, q$。
接下来 $n$ 行为初始时 $a_1, a_2, \dots, a_n$ 的值。
接下来 $q$ 行,每行表示一个操作。操作的格式如前所述。保证 $1 \leq x \leq y \leq n$。
$a_1, \dots, a_n$ 和 $w$ 均用恰好 $m$ 位的 $01$ 串表示这个数的二进制表示。左边是最高位,右边是最低位,不足 $m$ 位的在左边补 $0$。
### 输出格式
对于每个 $3$ 号操作,输出一个 $m$ 位 $01$ 串表示答案的二进制表示。
### 样例输入
```
3 4 7
0000
0011
0110
3
1 2 3 0010
3
2 1 2 0010
3
2 1 3 0000
3
```
### 样例输出
```
0110
0101
0110
0000
```
### 评测数据规模
$1 \leq n, m, q \leq 200$。