G. Рекурсивные запросы
ограничение по времени на тест
4 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Вам задана перестановка $$$p_1, p_2, \dots, p_n$$$. Вам необходимо ответить на $$$q$$$ запросов. Каждый запрос представляет из себя пару $$$(l_i, r_i)$$$ и Вам необходимо посчитать $$$f(l_i, r_i)$$$.

Пусть $$$m_{l, r}$$$ — это позиция максимума в подотрезке $$$p_l, p_{l+1}, \dots, p_r$$$.

Тогда, $$$f(l, r) = (r - l + 1) + f(l, m_{l,r} - 1) + f(m_{l,r} + 1, r)$$$ если $$$l \le r$$$ либо $$$0$$$ в противном случае.

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

В первой строке заданы два целых числа $$$n$$$ и $$$q$$$ ($$$1 \le n \le 10^6$$$, $$$1 \le q \le 10^6$$$) — длина перестановки $$$p$$$ и количество запросов.

Во второй строке заданы $$$n$$$ попарно различных целых чисел $$$p_1, p_2, \dots, p_n$$$ ($$$1 \le p_i \le n$$$, $$$p_i \neq p_j$$$ for $$$i \neq j$$$) — перестановка $$$p$$$.

В третьей строке заданы $$$q$$$ целых чисел $$$l_1, l_2, \dots, l_q$$$ — первые половины запросов.

В четвертой строке заданы $$$q$$$ целых чисел $$$r_1, r_2, \dots, r_q$$$ — вторые половины запросов.

Гарантируется, что $$$1 \le l_i \le r_i \le n$$$ для всех запросов.

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

Выведите $$$q$$$ целых чисел — значения $$$f(l_i, r_i)$$$ для соответствующих запросов.

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

Разбор запросов:

  1. $$$f(2, 2) = (2 - 2 + 1) + f(2, 1) + f(3, 2) = 1 + 0 + 0 = 1$$$;
  2. $$$f(1, 3) = (3 - 1 + 1) + f(1, 2) + f(4, 3) = 3 + (2 - 1 + 1) + f(1, 0) + f(2, 2) = 3 + 2 + (2 - 2 + 1) = 6$$$;
  3. $$$f(1, 4) = (4 - 1 + 1) + f(1, 2) + f(4, 4) = 4 + 3 + 1 = 8$$$;
  4. $$$f(2, 4) = (4 - 2 + 1) + f(2, 2) + f(4, 4) = 3 + 1 + 1 = 5$$$;
  5. $$$f(1, 1) = (1 - 1 + 1) + 0 + 0 = 1$$$.