AND = OR
Массив целых чисел [b[1]
, b[2]
, ..., b[m]
] назовем хорошим, если мы можем разделить все его элементы на 2 непустые группы, так что поразрядное AND для элементов в первой группе будет равно поразрядному OR для элементов во второй группе. Например, массив [1, 7, 3, 11] хорош, так как мы можем разбить его на [1, 3] и [7, 11], где 1 OR 3 = 3 и 7 AND 11 = 3.
Вам дан массив [a[1]
, a[2]
, ..., a[n]
], и Вы должны ответить на q запросов вида: является ли подмассив [a[l]
, a[l+1]
, ..., a[r]
] хорошим?
Входные данные
Первая строка содержит два целых числа n, q (1 ≤ n ≤ 10^5
, 1 ≤ q ≤ 10^5
) - длину массива и число запросов.
Вторая строка содержит n целых чисел a[1]
, a[2]
, ..., a[n]
(0 ≤ a[i]
≤ 2^30
- 1) - элементы массива.
i-ая из следующих q строк содержит 2 целых числа l[i]
, r[i]
(1 ≤ l[i]
≤ r[i]
≤ n) и описывает i-ый запрос.
Выходные данные
Для каждого запроса выведите YES если соответствующий подмассив хороший, и NO если нет.