public class Main {
interface Expander {
char[] expand
(String compressed
); }
public static void main
(String[] args
) { Expander expander =
s->{int i=0;for(var c:s.toCharArray())i+="(<[{".indexOf(c)>-1?1:c=='|'?-1:0;for(;i-->0;)s+='|';s=s.replace(")","()").replace(">","<>").replace("]","[]").replace("}","{}");char[]c=s.toCharArray(),r=new char[124];r[40]=41;r[60]=62;r[91]=93;r['{']='}';for(var o="";++i<c.length;o="(<[{".indexOf(c[i])>-1&")>]}".indexOf(i+1<c.length?c[i+1]:0)<0?r[c[i]]+o:o){if(c[i]=='|'){c[i]=o.charAt(0);o=o.substring(1);}}return c;}
;
print(expander, "({(}|(}[)", "({({})({}[()])})");
print(expander, "())))", "(()()()())");
print(expander, "([([}()||||(>||{(})|>|}{((<}|||>}|}>}", "([([{}(())])](<>)){({}())<>}{}{((<{}>))<>{}}{}<>{}");
print(expander, "({(}|(}[)|||}", "({({})({}[()])}{})");
print(expander, "(((()))||(](((}}||(}([(((}))||||(]((}}|}|}}|||]||]|[))||(}))|}(}|(}]]|}", "((((()()()))([]((({}{}))({}([((({}()())))]([](({}{}){}){}{})))[]))[])[()()])({}()()){}({})({}[][]){}");
}
private static void print
(Expander expander,
String compressed,
String solution
) { System.
out.
println(expanded.
equals(solution
)+" "+expanded
); }
}
cHVibGljIGNsYXNzIE1haW4gewoJaW50ZXJmYWNlIEV4cGFuZGVyIHsKCQljaGFyW10gZXhwYW5kKFN0cmluZyBjb21wcmVzc2VkKTsKCX0KCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKCQlFeHBhbmRlciBleHBhbmRlciA9IAoJCQpzLT57aW50IGk9MDtmb3IodmFyIGM6cy50b0NoYXJBcnJheSgpKWkrPSIoPFt7Ii5pbmRleE9mKGMpPi0xPzE6Yz09J3wnPy0xOjA7Zm9yKDtpLS0+MDspcys9J3wnO3M9cy5yZXBsYWNlKCIpIiwiKCkiKS5yZXBsYWNlKCI+IiwiPD4iKS5yZXBsYWNlKCJdIiwiW10iKS5yZXBsYWNlKCJ9Iiwie30iKTtjaGFyW11jPXMudG9DaGFyQXJyYXkoKSxyPW5ldyBjaGFyWzEyNF07cls0MF09NDE7cls2MF09NjI7cls5MV09OTM7clsneyddPSd9Jztmb3IodmFyIG89IiI7KytpPGMubGVuZ3RoO289Iig8W3siLmluZGV4T2YoY1tpXSk+LTEmIik+XX0iLmluZGV4T2YoaSsxPGMubGVuZ3RoP2NbaSsxXTowKTwwP3JbY1tpXV0rbzpvKXtpZihjW2ldPT0nfCcpe2NbaV09by5jaGFyQXQoMCk7bz1vLnN1YnN0cmluZygxKTt9fXJldHVybiBjO30KCgkJOwoJCXByaW50KGV4cGFuZGVyLCAiKHsofXwofVspIiwgIih7KHt9KSh7fVsoKV0pfSkiKTsKCQlwcmludChleHBhbmRlciwgIigpKSkpIiwgIigoKSgpKCkoKSkiKTsKCQlwcmludChleHBhbmRlciwgIihbKFt9KCl8fHx8KD58fHsofSl8Pnx9eygoPH18fHw+fXx9Pn0iLCAiKFsoW3t9KCgpKV0pXSg8Pikpeyh7fSgpKTw+fXt9eygoPHt9PikpPD57fX17fTw+e30iKTsKCQlwcmludChleHBhbmRlciwgIih7KH18KH1bKXx8fH0iLCAiKHsoe30pKHt9WygpXSl9e30pIik7CgkJcHJpbnQoZXhwYW5kZXIsICIoKCgoKSkpfHwoXSgoKH19fHwofShbKCgofSkpfHx8fChdKCh9fXx9fH19fHx8XXx8XXxbKSl8fCh9KSl8fSh9fCh9XV18fSIsICIoKCgoKCkoKSgpKSkoW10oKCh7fXt9KSkoe30oWygoKHt9KCkoKSkpKV0oW10oKHt9e30pe30pe317fSkpKVtdKSlbXSlbKCkoKV0pKHt9KCkoKSl7fSh7fSkoe31bXVtdKXt9Iik7Cgl9Cglwcml2YXRlIHN0YXRpYyB2b2lkIHByaW50KEV4cGFuZGVyIGV4cGFuZGVyLCBTdHJpbmcgY29tcHJlc3NlZCwgU3RyaW5nIHNvbHV0aW9uKSB7CgkJU3RyaW5nIGV4cGFuZGVkID0gbmV3IFN0cmluZyhleHBhbmRlci5leHBhbmQoY29tcHJlc3NlZCkpOwoJCVN5c3RlbS5vdXQucHJpbnRsbihleHBhbmRlZC5lcXVhbHMoc29sdXRpb24pKyIgIitleHBhbmRlZCk7Cgl9Cn0=