Given n pairs of parentheses, write a program to generate all combinations of well-formed parentheses.

Example

Input: n = 3
Output: A solution set is
[
  "((()))",
  "(()())",
  "(())()",
  "()(())",
  "()()()"
]