using System;
public class Program
{
private static void break_string_in_bracket(string str, int index, string form) {
if (index == str.Length) {
Console.WriteLine(form);
}
for (int i = index; i < str.Length; i++) {
string temp = form;
temp += "(";
temp += str.Substring(index, (i + 1) - index);
temp += ")";
break_string_in_bracket(str, i + 1, temp);
}
}
public static void Main()
{
string str = "abcd";
break_string_in_bracket(str, 0, "");
}
}
/*
run:
(a)(b)(c)(d)
(a)(b)(cd)
(a)(bc)(d)
(a)(bcd)
(ab)(c)(d)
(ab)(cd)
(abc)(d)
(abcd)
*/