D. Витя и странный урок
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Сегодня на уроке Витя изучал очень интересную функцию — mex. Mex набора чисел — минимальное неотрицательное число, не присутствующее в наборе чисел. Например, mex([4, 33, 0, 1, 1, 5]) = 2, а mex([1, 2, 3]) = 0.

Витя очень быстро разобрался со всеми задачами учителя, а сможете ли вы?

Даны массив, состоящий из n неотрицательных целых чисел, и m запросов. Каждый запрос характеризуется одним числом x и заключается в следующих последовательных шагах:

  • Выполнить операцию побитового сложения по модулю 2 (xor) каждого элемента массива с числом x.
  • Найти mex полученного массива.

Учтите, что после каждого запроса массив изменяется.

Входные данные

Первая строка содержит два целых положительных числа n и m (1 ≤ n, m ≤ 3·105), обозначающие количество элементов в массиве и количество запросов соответственно.

Следующая строка содержит n неотрицательных целых чисел ai (0 ≤ ai ≤ 3·105), представляющих элементы исходного массива.

Каждая из следующих m строк содержит запрос — одно неотрицательное целое число x (0 ≤ x ≤ 3·105).

Выходные данные

Для каждого запроса выведите ответ на него в отдельной строке.

Примеры
Входные данные
2 2
1 3
1
3
Выходные данные
1
0
Входные данные
4 3
0 1 5 6
1
2
4
Выходные данные
2
0
0
Входные данные
5 4
0 1 5 6 7
1
1
4
5
Выходные данные
2
2
0
2