Given a 0-indexed list of non-negative integers, and queries each consisting of one non-negative integer , output the smallest index of the minimum value in the list after each number in the list is XOR'd with for each query. Queries are persistent. That is, any previous queries change the list directly and affect the current query's answer.

#### Input Specification

The first line will contain two space-separated integers, , and .

The second line will contain space-separated integers, .

The next lines will each contain one integer .

#### Output Specification

For each query, output the smallest index of the minimum value in the list after every number in the list has been XOR'd with .

#### Subtasks

For all subtasks, and

For 5 out of the 17 available marks, and

#### Sample Input 1

```
8 4
2 15 8 1 6 2 16 8
0
2
10
7
```

#### Sample Output 1

```
3
0
2
1
```

#### Explanation for Sample Output 1

`2 15 8 1 6 2 16 8`

The array is unchanged after the first XOR operation. The minimum is simply 1 at index 3.

`0 13 10 3 4 0 18 10`

In this case, the first of the two zeroes is chosen (index 0).

`10 7 0 9 14 10 24 0`

The first occurrence of the minimum value (0) is at index 2.

`13 0 7 14 9 13 31 7`

The minimum value (0) is at index 1.

#### Sample Input 2

```
7 5
7 7 8 0 0 10 16
12
14
16
6
12
```

#### Sample Output 2

```
2
3
6
6
6
```

## Comments