#abc064d. [abc064_d]Insertion

[abc064_d]Insertion

配点 : 400400

問題文

() で構成される NN 文字の文字列 SS が与えられる。SS にいくつかの ( または ) を挿入することで正しい括弧列を作りたい。
ただし、正しい括弧列は次のように定義されている:

  • () は正しい括弧列である。
  • XX が正しい括弧列であるとき、(XX) をこの順につなげたものは正しい括弧列である。
  • XXYY が正しい括弧列であるとき、XXYY をこの順につなげたものは正しい括弧列である。
  • それ以外の括弧列は正しくない。

そのとき、作れる最も文字数が少ない正しい括弧列を求めなさい。このようなものが複数ある場合は、辞書順最小のものを求めなさい。

制約

  • SS の長さは NN である。
  • 1N1001 ≤ N ≤ 100
  • SS() のみで構成されている。

入力

入力は以下の形式で標準入力から与えられる。

NN SS

出力

SS から () を挿入していったときに作れる最小の長さの正しい括弧列のなかで辞書順最小の文字列を出力しなさい。


入力例 1

3
())

出力例 1

(())

入力例 2

6
)))())

出力例 2

(((()))())

入力例 3

8
))))((((

出力例 3

(((())))(((())))