Коли немає чим зайнятись, а вдома лише перестановка
Дана перестановка чисел від до .
З нею ви можете робити наступну операцію:
Ви можете переставити місцями два сусідні елементи . Ця операція займає рівно одну секунду.
За одну ітерацію ви робите наступне:
Розглянемо перестановку , що знаходиться прямо перед в лексикографічному порядку, тобто лексикографічно менша за і не існує жодної перестановки "між ними". Наприклад, для , для , а для .
Перетворимо перестановку в перестановку , за мінімально можливу кількість операцій. Наприклад, щоб перетворити в , потрібно мінімум операції: .
Ви застосовуєте до отриманої перестановки дану ітерацію, поки вона не стане тотожною перестановкою (тобто рівною . Скільки часу це займе? Оскільки це число може бути дуже великим, виведіть його за модулем .
Перестановка вважається лексикографічно меншою за перестановку , якщо існує такий індекс , що для всіх , а також .
Input
Перший рядок містить єдине число ()— довжину перестановки.
Другий рядок містить цілих чисел (, всі числа попарно різні) — елементи перестановки.
Output
Виведіть кількість секунд, яка пройде, поки процес не завершиться, за модулем .
Examples
Note
В першому прикладі маємо:
: секунди.
: секунда.
: секунди.
: секунда.
Всього секунд.