Олимпиадный тренинг

Задача . D. Витя и странный урок


Сегодня на уроке Витя изучал очень интересную функцию — 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).

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

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


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

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя