AND = OR#10887

AND = OR

3 секунди
128 мегабайтів
Легка

Масив цілих чисел [b_1, b_2, \dots, b_m] назвемо хорошим, якщо його можна розділити на дві непорожні групи так, що побітова операція для елементів першої групи дорівнює побітовій операції для елементів другої групи.

Наприклад, масив [1, 7, 3, 11] є хорошим, оскільки його можна розбити на групи і , де 1~OR~3 = 3 і 7~AND~11 = 3.

Задано масив [a_1, a_2, \dots, a_n]. Дайте відповідь на запитів типу: чи є підмасив [a_l, a_{l+1}, \dots, a_r] хорошим?

Вхідні дані

Перша стрічка містить два цілі числа і q~(1 \le n \le 10^5, 1 \le q \le 10^5) — довжину масиву та кількість запитів.

Друга стрічка містить цілих чисел a_1, a_2, \dots, a_n~(0 \le a_i \le 2^{30}-1) — елементи масиву.

Кожна з наступних стрічок містить два цілі числа l_i і r_i~(1 \le l_i \le r_i \le n) і описує -й запит.

Вихідні дані

Для кожного запиту виведіть "YES", якщо відповідний підмасив хороший, і "NO" якщо ні.

Приклади

Приклад 1

Loading
Loading