C. Лесенка
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Вам задан массив, состоящий из n целых чисел a1, a2, ..., an. Также задано m запросов, i-ый запрос описывается двумя целыми числами li, ri. Числа li, ri обозначают подотрезок исходного массива, то есть последовательность чисел ali, ali + 1, ali + 2, ..., ari. Для каждого запроса нужно проверить, является ли соответствующий ему подотрезок лесенкой.

Лесенкой назовем последовательность целых чисел b1, b2, ..., bk такую, что сначала она не убывает, а затем не возрастает. Другими словами, существует такое целое число x (1 ≤ x ≤ k), что выполняется неравенство: b1 ≤ b2 ≤ ... ≤ bx ≥ bx + 1 ≥ bx + 2... ≥ bk. Обратите внимание, что неубывающая и невозрастающая последовательности также считаются лесенками.

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

В первой строке заданы два целых числа n и m (1 ≤ n, m ≤ 105) — количество элементов массива и количество запросов соответственно. Во второй строке задана последовательность целых чисел a1, a2, ..., an (1 ≤ ai ≤ 109), в которой число ai обозначает i-ый элемент массива.

Далее в m строках заданы описания запросов. В i-ой строке задано описание i-ого запроса, состоящее из двух целых чисел li, ri (1 ≤ li ≤ ri ≤ n) — границы подотрезка исходного массива.

Числа в строках разделяются одиночными пробелами.

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

Выведите m строк, в i-ой строке выведите слово «Yes» (без кавычек), если подотрезок, соответствующий i-ому запросу, является лесенкой, или слово «No» (без кавычек) в противном случае.

Примеры
Входные данные
8 6
1 2 1 3 3 5 2 1
1 3
2 3
2 4
8 8
1 4
5 8
Выходные данные
Yes
Yes
No
Yes
No
Yes