using System.Collections.Generic;
public static void Main()
Console.WriteLine(BalanceString("())(()"));
Console.WriteLine(BalanceString("abcd("));
Console.WriteLine(BalanceString("(abcd)"));
Console.WriteLine(BalanceString(")a(((bc))d("));
Console.WriteLine(BalanceString("((())(()"));
Console.WriteLine(BalanceString("a(b)c)d(e(f)g"));
Console.WriteLine(BalanceString("a(b)c)"));
public static string BalanceString(string s) {
var arr = s.ToCharArray();
for (var i = 0; i < arr.Length; ++i) {
for (var i = arr.Length - 1; i >= 0; --i) {
var sb = new StringBuilder();
for (var i = 0; i < arr.Length; ++i) {
if (arr[i] != '\0') sb.Append(arr[i]);