Олимпиадный тренинг

Задача . E. Замена


Вам дан массив целых чисел \(a_1,\ldots, a_n\), где \(1\le a_i \le n\) для всех \(i\).

Так же есть функция «замены» \(f\), которая принимает в качестве аргументов пару целых чисел \((l, r)\), где \(l \le r\), и возвращает пару \(\)f\big( (l, r) \big)=\left(\min\{a_l,a_{l+1},\ldots,a_r\},\, \max\{a_l,a_{l+1},\ldots,a_r\}\right).\(\)

Рассмотрим повторные вызовы этой функции. То есть взяв начальную пару \((l, r)\) мы получаем \(f\big((l, r)\big)\), затем \(f\big(f\big((l, r)\big)\big)\), затем \(f\big(f\big(f\big((l, r)\big)\big)\big)\) и так далее.

Вам нужно ответить на \(q\) запросов. В \(i\)-м запросе вам даны два целых числа \(l_i\) и \(r_i\) (\(1\le l_i\le r_i\le n\)). Вы должны сказать, какое минимальное число раз вы должны применить функцию «замены» к паре \((l_i,r_i)\), чтобы получить \((1, n)\), или определить, что это невозможно.

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

Первая строка содержит два положительных целых числа \(n\), \(q\) (\(1\le n,q\le 10^5\)) — длина последовательности \(a\) и количество запросов.

Вторая строка содержит \(n\) положительных целых чисел \(a_1,a_2,\ldots,a_n\) (\(1\le a_i\le n\)) — последовательность \(a\).

Каждая из следующих \(q\) строк содержит два целых числа \(l_i\), \(r_i\) (\(1\le l_i\le r_i\le n\)) — запросы.

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

Для каждого запроса выведите требуемое количество применений функции или \(-1\), если достичь требуемого результата невозможно.

Примечание

В первом примере \(n=5\) и \(a=[2,5,4,1,3]\).

В первом запросе: \((4,4)\to(1,1)\to(2,2)\to(5,5)\to(3,3)\to(4,4)\to\ldots\), поэтому невозможно получить \((1,5)\).

Во втором запросе у вас уже есть \((1,5)\).

В третьем запросе: \((1,4)\to(1,5)\).

В четвертом запросе: \((3,5)\to(1,4)\to(1,5)\).

В пятом запросе: \((4,5)\to(1,3)\to(2,5)\to(1,5)\).

В шестом запросе: \((2,3)\to(4,5)\to(1,3)\to(2,5)\to(1,5)\).


Примеры
Входные данныеВыходные данные
1 5 6
2 5 4 1 3
4 4
1 5
1 4
3 5
4 5
2 3
-1
0
1
2
3
4
2 6 3
2 3 4 6 1 2
5 6
2 5
2 3
5
1
3
3 5 3
3 2 2 4 1
2 5
1 3
1 5
-1
-1
0

time 1500 ms
memory 1024 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя