eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

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 (1n105, 1q105) - длину массива и число запросов.

Вторая строка содержит n целых чисел a1, a2, ..., an (0ai230 - 1) - элементы массива.

i-ая из следующих q строк содержит 2 целых числа li, ri (1lirin) и описывает i-ый запрос.

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

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

Ліміт часу 3 секунди
Ліміт використання пам'яті 128 MiB
Вхідні дані #1
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
Вихідні дані #1
NO
NO
YES
YES
YES
NO
YES
YES
YES
NO
NO
YES
NO
NO
NO
Джерело 2020 SEERC South Eastern European Regional Programming Contest, Винница и Бухарест, Май 23, Задача H