ПСП

Ограничение по времени: 2.000 секунд

Ограничение по памяти: 500.000 мегабайт

Вероника изучает неизвестный язык программирования.

В документации дано описание этого языка. Известно, что программа на этом языке является правильной скобочной последовательностью (ПСП). ПСП это строка, состоящая из символов ( и ). Пустая строка является ПСП. Конкатенация двух, возможно разных, ПСП является ПСП. ПСП, взятая в скобки, является ПСП. Две скобки в ПСП называются парными, если подстрока, начинающаяся сразу после первой из скобок и заканчивающаяся прямо перед второй, является ПСП. Несложно доказать, что в любой ПСП длины n·2 есть ровно n пар парных скобок. Для простоты, будем называть их просто парами скобок.

Известно, что программа на этом языке содержит n пар скобок. А также, известно мультимножество расстояний между скобками в каждой паре. Иными словами, для каждой пары скобок было найдено ai - количество символов между ними.

Теперь Вероника пытается восстановить программу. Помогите ей найти любую подходящую ПСП, либо сообщите, что такой не существует.

Формат входных данных

В первой строке дано одно целое число n - количество пар скобок в описании программы (1 ≤ n ≤ 20).

Во второй строке даны n целых чисел ai - мультимножество расстояний между скобками в каждой паре (0 ≤ ai ≤ n·2).

Формат выходных данных

Если существует ПСП, которая удовлетворяет всем ограничениям, в первой строке выведите Yes, а во второй - строку из символов ( и ) длины n·2 - подходящую ПСП. Если существует несколько решений, выведите любое.

Если подходящей ПСП не существует, в единственной строке выведите No.

Пример

input output
1
0
Yes
()
2
0 0
Yes
()()
2
2 0
Yes
(())
1
2
No
5
0 0 0 2 6
Yes
()(()(()))
Войдите, что бы отправлять решения