F. Отрезки с равным XOR
ограничение по времени на тест
5 секунд
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Давайте назовем массив $$$x_1,\dots,x_m$$$ интересным, если возможно разделить массив на $$$k>1$$$ частей так, чтобы побитовое исключающее ИЛИ(XOR) значений из каждой части было равно.

Формально, вам нужно разделить массив $$$x$$$ на $$$k$$$ последовательных отрезков, причем каждый элемент $$$x$$$ должен принадлежать ровно $$$1$$$ отрезку. Пусть XOR элементов из каждой части равны $$$y_1,\dots,y_k$$$, соответственно. Тогда должно выполняться условие $$$y_1=y_2=\dots=y_k$$$.

Например, если $$$x = [1, 1, 2, 3, 0]$$$, вы можете разделить его следующим образом: $$$[\color{blue}1], [\color{green}1], [\color{red}2, \color{red}3, \color{red}0]$$$. Действительно, $$$\color{blue}1=\color{green}1=\color{red}2 \oplus \color{red}3\oplus \color{red}0$$$.

Вам дан массив $$$a_1,\dots,a_n$$$. Ваша задача — ответить на $$$q$$$ запросов:

  • Для фиксированных $$$l$$$, $$$r$$$ определить, является ли подмассив $$$a_l,a_{l+1},\dots,a_r$$$ интересным.
Входные данные

Первая строка содержит одно целое число $$$t$$$ ($$$1\le t\le 10^4$$$) — количество наборов входных данных.

Первая строка каждого набора содержит два целых числа $$$n$$$ и $$$q$$$ ($$$2 \le n \le 2 \cdot 10^5$$$, $$$1 \le q \le 2 \cdot 10^5$$$) — количество элементов в массиве и количество запросов соответственно.

Следующая строка содержит $$$n$$$ целых чисел $$$a_1,\dots,a_n$$$ ($$$0 \le a_i < 2^{30}$$$) — элементы массива.

Следующие $$$q$$$ строк содержат по два целых числа $$$l$$$ и $$$r$$$ ($$$1 \le l < r \le n$$$) описывающие запрос.

Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превышает $$$2 \cdot 10^5$$$.

Гарантируется, что сумма $$$q$$$ по всем наборам входных данных не превышает $$$2 \cdot 10^5$$$.

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

Для каждого запроса выведите «YES», если подмассив интересный, и «NO» в противном случае.

Вы можете выводить «Yes» и «No» в любом регистре (например, строки «yES», «yes» и «Yes» будут распознаны как правильные ответы).

Пример
Входные данные
4
5 5
1 1 2 3 0
1 5
2 4
3 5
1 3
3 4
5 5
1 2 3 4 5
1 5
2 4
3 5
1 3
2 3
7 4
12 9 10 9 10 11 9
1 5
1 7
2 6
2 7
11 4
0 0 1 0 0 1 0 1 1 0 1
1 2
2 5
6 9
7 11
Выходные данные
YES
YES
NO
NO
NO

YES
NO
NO
YES
NO

NO
NO
NO
NO

YES
NO
YES
YES
Примечание

Объяснение для первого примера:

Первый запрос описан в условии.

Во втором запросе мы должны разделить $$$[1,2,3]$$$. Возможное разделение — $$$[1,2],[3]$$$, так как $$$1\oplus 2=3$$$.

Можно показать, что для запросов $$$3,4,5$$$ подмассивы не интересны.