valid parentheses
merge two sorted lists
[dfs] generate parentheses

two numbers to control search
[heap] merge k sorted lists

use min heap