void helper(int need, int complete, List<String> res, StringBuilder tmp, int n) {
		if (complete > need) {
			tmp.deleteCharAt(tmp.length() - 1);
			return;
		}
		if (need < n && complete < n) {
			tmp.append('(');
			helper(need + 1, complete, res, tmp, n);
			tmp.append(')');
			helper(need, complete + 1, res, tmp, n);
		} else if (need == n && complete < n) {
			tmp.append(')');
			helper(need, complete + 1, res, tmp, n);
		} else if (need == n && complete == n)
			res.add(tmp.toString());
		if (tmp.length() != 0)
			tmp.deleteCharAt(tmp.length() - 1);
	}