AND = OR
AND = OR
Массив целых чисел [b1
, b2
, ..., bm
] назовем хорошим, если мы можем разделить все его элементы на 2 непустые группы, так что поразрядное AND для элементов в первой группе будет равно поразрядному OR для элементов во второй группе. Например, массив [1, 7, 3, 11] хорош, так как мы можем разбить его на [1, 3] и [7, 11], где 1 OR 3 = 3 и 7 AND 11 = 3.
Вам дан массив [a1
, a2
, ..., an
], и Вы должны ответить на q запросов вида: является ли подмассив [al
, al+1
, ..., ar
] хорошим?
Входные данные
Первая строка содержит два целых числа n, q (1 ≤ n ≤ 105
, 1 ≤ q ≤ 105
) - длину массива и число запросов.
Вторая строка содержит n целых чисел a1
, a2
, ..., an
(0 ≤ ai
≤ 230
- 1) - элементы массива.
i-ая из следующих q строк содержит 2 целых числа li
, ri
(1 ≤ li
≤ ri
≤ n) и описывает i-ый запрос.
Выходные данные
Для каждого запроса выведите YES если соответствующий подмассив хороший, и NO если нет.
5 15 0 1 1 3 2 1 1 1 2 1 3 1 4 1 5 2 2 2 3 2 4 2 5 3 3 3 4 3 5 4 4 4 5 5 5
NO NO YES YES YES NO YES YES YES NO NO YES NO NO NO