Дана перестановка (p_1, p_2, \ldots, p_n) чисел від до .
З нею ви можете робити наступну операцію: переставити місцями два сусідні елементи . Ця операція займає рівно одну секунду.
За одну ітерацію ви робите наступне:
Розглянемо перестановку (q_1, q_2, \ldots, q_n), що знаходиться прямо перед (p_1, p_2, \ldots, p_n) в лексикографічному порядку, тобто лексикографічно менша за і не існує жодної перестановки "між ними". Наприклад, для p = (2, 3, 1): q = (2, 1, 3), для p = (3, 1, 2, 4): q = (2, 4, 3, 1), а для p = (1, 4, 2, 3): q = (1, 3, 4, 2).
Перетворимо перестановку в перестановку , за мінімально можливу кількість операцій. Наприклад, щоб перетворити (1, 4, 2, 3) в (1, 3, 4, 2), потрібно мінімум операції: (1, 4, 2, 3) \to (1, 4, 3, 2) \to (1, 3, 4, 2).
Ви застосовуєте до отриманої перестановки дану ітерацію, поки вона не стане тотожною перестановкою (тобто рівною (1, 2, 3, \ldots, n)). Скільки часу це займе? Оскільки це число може бути дуже великим, виведіть його за модулем 10^9+7.
Перестановка вважається лексикографічно меншою за перестановку , якщо існує такий індекс , що p_j = q_j для всіх j<i, а також p_i<q_i.
Перший рядок містить єдине число (1 \le n \le 2\cdot 10^5) — довжину перестановки.
Другий рядок містить цілих чисел p_1, p_2, \ldots, p_n (1 \le p_i \le n, всі числа попарно різні) — елементи перестановки.
Виведіть кількість секунд, яка пройде, поки процес не завершиться, за модулем 10^9+7.
Приклад 1
Приклад 2
В першому прикладі маємо:
(1, 4, 2, 3) \to (1, 4, 3, 2) \to (1, 3, 4, 2): секунди.
(1, 3, 4, 2) \to (1, 3, 2, 4): секунда.
(1, 3, 2, 4) \to (1, 2, 3, 4) \to (1, 2, 4, 3): секунди.
(1, 2, 4, 3) \to (1, 2, 3, 4): секунда.
Всього секунд.