Chunky Munky has an array of numbers , along with queries.

Each query is one of the following types:

`1 p x`

: Set .`2 l r k`

: Chunky Munky picks up , then all the way until , and would like to know the index of the first element he picks up with a value strictly less than .**It's guaranteed that the value of will always be such that he will pick up a value strictly less than during the process.**

Help Chunky Munky answer his queries!

Note that this problem will be **online enforced**, meaning that input will be given in an encrypted format. To encrypt the data, the values in queries will be given as , and , where denotes the bitwise XOR operation. Note that at any time is defined as the answer to the latest type query. If no type queries have occurred so far, .

#### Constraints

For all subtasks:

For of points, .

For of points, .

For all points, no additional constraints apply.

#### Input Specification

The first line contains the integers and .

The second line contains the array .

The next lines each contain a query of one of the above types.

#### Output Specification

For each query of type , output its answer on a separate line.

#### Sample Input

```
10 5
3 1 4 1 5 9 2 6 5 3
2 6 10 6
2 2 14 1
2 6 2 6
1 0 14
2 7 3 7
```

#### Sample Input (Unencrypted)

```
10 5
3 1 4 1 5 9 2 6 5 3
2 6 10 6
2 5 9 6
2 3 7 3
1 4 10
2 3 7 3
```

#### Sample Output

```
7
5
4
7
```

## Comments