Зірочка#5882

Зірочка

0,5 секунди
64 мегабайти
Середня

Нещодавно математики Кукуляндії придумали нову бінарну операцію «зірочка», аргументами якої є послідовності. Операція просто дописує першу послідовність у кінець другої. Наприклад, (2, 4) * (1, 3) = (1, 3, 2, 4). Операції «зірочка» у виразі виконуються зліва направо, але цей порядок можна змінити за допомогою дужок (операції у дужках виконуються раніше). Наприклад, (3) * ((1, 5) * (2, 7)) = (2, 7, 1, 5, 3).

Зауважте, що якщо елемент послідовності є виразом, то спочатку обчислюється значення цього виразу, а потім у всій послідовності забираються внутрішні дужки. Наприклад, (1, ((2) * (3)), 4) = (1, (3, 2), 4) = (1, 3, 2, 4).

Тепер кукуляндці хочуть використати цю операцію для створення перестановок. Точніше, вони хочуть отримати задану перестановку з перестановки (1, 2, ..., N), додавши дужки, коми та зірочки й обчисливши результат виразу.

Ось формальне визначення виразу:

<вираз> ::= <послідовність> [* <послідовність> ...]

<послідовність> ::= ( <елемент> [, <елемент> ...] )

<елемент> ::= <число> | <вираз>

<число> ::= 1 | 2 | ...| N

Вхідні дані

У першому рядку записано число (1 \leq N \leq 10000). У другому рядку записано перестановку чисел від до . Числа в рядку розділено пропуском.

Вихідні дані

Виведіть єдиний рядок — коректний вираз, результат якого дає задану перестановку. Числа від до повинні йти у зростаючому порядку. Довжина виразу не повинна перевищувати символів. Якщо шуканого виразу не існує, виведіть IMPOSSIBLE. Зверніть увагу, що у виразі не повинно бути пропусків, і всі послідовності обов'язково повинні бути взяті у дужки.

Приклади

Приклад 1

Loading
Loading