import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class Ideone
{
{
String regex
= "\\{((?:[^\\{}]*\\{[^\\{}]*\\}[^\\{}]*)*)\\}"; + "{{0,test}}\n"
+ "{test {0,test}}\n"
+ "{{0,test} test2}\n"
+ "{test {0,test} test2}\n\n"
+ "{test {0, test} test2 {1} test3 {2}}\n"
+ "{test {0, test} test2 {1} test3 {2} test4}\n"
+ "{test {0, test} test2 {1} test3 {2} test4} test5 {3}\n\n\n"
+ "{{0}}\n"
+ "{{0,test}}\n"
+ "{test {0,test}}\n"
+ "{{0,test} test2}\n"
+ "{test {0,test} test2}\n\n"
+ "test {test {0, test} test2 {1} test3 {2}}\n"
+ "test {test {0, test} test2 {1} test3 {2}} {3}\n"
+ "test {test {0, test} test2 {1} test3 {2}} asdf\n"
+ "{test {0, test} test2 {1} test3 {2}}\n"
+ "{test {0, test} test2 {1} test3 {2} test4}\n"
+ "{test {0, test} test2 {1} test3 {2} test4} test5 {3}\n\n"
+ "test {test {0, test} test2 {1} test3 {2}} -> test {0, test} test2 {1} test3 {2}\n"
+ "test {test {0, test} test2 {1} test3 {2}} {3} -> test {0, test} test2 {1} test3 {2}\n"
+ "test {test {0, test} test2 {1} test3 {2}} asdf -> test {0, test} test2 {1} test3 {2}\n"
+ "{test {0, test} test2 {1} test3 {2}} -> test {0, test} test2 {1} test3 {2}\n"
+ "{test {0, test} test2 {1} test3 {2} test4} -> test {0, test} test2 {1} test3 {2} test4\n"
+ "{test {0, test} test2 {1} test3 {2} test4} test5 {3} -> test {0, test} test2 {1} test3 {2} test4\n"
+ "{test {0, test} test2 {1} test3 {2} test4} test5 {3 -> test {0, test} test2 {1} test3 {2} test4\n\n\n";
Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.
out.
println(matcher.
group(1)); }
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwucmVnZXguTWF0Y2hlcjsKaW1wb3J0IGphdmEudXRpbC5yZWdleC5QYXR0ZXJuOwoKY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJewoJCVN0cmluZyByZWdleCA9ICJcXHsoKD86W15cXHt9XSpcXHtbXlxce31dKlxcfVteXFx7fV0qKSopXFx9IjsKCQlTdHJpbmcgc3RyaW5nID0gInt7MH19XG4iCgkJCSArICJ7ezAsdGVzdH19XG4iCgkJCSArICJ7dGVzdCB7MCx0ZXN0fX1cbiIKCQkJICsgInt7MCx0ZXN0fSB0ZXN0Mn1cbiIKCQkJICsgInt0ZXN0IHswLHRlc3R9IHRlc3QyfVxuXG4iCgkJCSArICJ7dGVzdCB7MCwgdGVzdH0gdGVzdDIgezF9IHRlc3QzIHsyfX1cbiIKCQkJICsgInt0ZXN0IHswLCB0ZXN0fSB0ZXN0MiB7MX0gdGVzdDMgezJ9IHRlc3Q0fVxuIgoJCQkgKyAie3Rlc3QgezAsIHRlc3R9IHRlc3QyIHsxfSB0ZXN0MyB7Mn0gdGVzdDR9IHRlc3Q1IHszfVxuXG5cbiIKCQkJICsgInt7MH19XG4iCgkJCSArICJ7ezAsdGVzdH19XG4iCgkJCSArICJ7dGVzdCB7MCx0ZXN0fX1cbiIKCQkJICsgInt7MCx0ZXN0fSB0ZXN0Mn1cbiIKCQkJICsgInt0ZXN0IHswLHRlc3R9IHRlc3QyfVxuXG4iCgkJCSArICJ0ZXN0IHt0ZXN0IHswLCB0ZXN0fSB0ZXN0MiB7MX0gdGVzdDMgezJ9fVxuIgoJCQkgKyAidGVzdCB7dGVzdCB7MCwgdGVzdH0gdGVzdDIgezF9IHRlc3QzIHsyfX0gezN9XG4iCgkJCSArICJ0ZXN0IHt0ZXN0IHswLCB0ZXN0fSB0ZXN0MiB7MX0gdGVzdDMgezJ9fSBhc2RmXG4iCgkJCSArICJ7dGVzdCB7MCwgdGVzdH0gdGVzdDIgezF9IHRlc3QzIHsyfX1cbiIKCQkJICsgInt0ZXN0IHswLCB0ZXN0fSB0ZXN0MiB7MX0gdGVzdDMgezJ9IHRlc3Q0fVxuIgoJCQkgKyAie3Rlc3QgezAsIHRlc3R9IHRlc3QyIHsxfSB0ZXN0MyB7Mn0gdGVzdDR9IHRlc3Q1IHszfVxuXG4iCgkJCSArICJ0ZXN0IHt0ZXN0IHswLCB0ZXN0fSB0ZXN0MiB7MX0gdGVzdDMgezJ9fSAgICAgICAgICAgIC0+IHRlc3QgezAsIHRlc3R9IHRlc3QyIHsxfSB0ZXN0MyB7Mn1cbiIKCQkJICsgInRlc3Qge3Rlc3QgezAsIHRlc3R9IHRlc3QyIHsxfSB0ZXN0MyB7Mn19IHszfSAgICAgICAgLT4gdGVzdCB7MCwgdGVzdH0gdGVzdDIgezF9IHRlc3QzIHsyfVxuIgoJCQkgKyAidGVzdCB7dGVzdCB7MCwgdGVzdH0gdGVzdDIgezF9IHRlc3QzIHsyfX0gYXNkZiAgICAgICAtPiB0ZXN0IHswLCB0ZXN0fSB0ZXN0MiB7MX0gdGVzdDMgezJ9XG4iCgkJCSArICJ7dGVzdCB7MCwgdGVzdH0gdGVzdDIgezF9IHRlc3QzIHsyfX0gICAgICAgICAgICAgICAgIC0+IHRlc3QgezAsIHRlc3R9IHRlc3QyIHsxfSB0ZXN0MyB7Mn1cbiIKCQkJICsgInt0ZXN0IHswLCB0ZXN0fSB0ZXN0MiB7MX0gdGVzdDMgezJ9IHRlc3Q0fSAgICAgICAgICAgLT4gdGVzdCB7MCwgdGVzdH0gdGVzdDIgezF9IHRlc3QzIHsyfSB0ZXN0NFxuIgoJCQkgKyAie3Rlc3QgezAsIHRlc3R9IHRlc3QyIHsxfSB0ZXN0MyB7Mn0gdGVzdDR9IHRlc3Q1IHszfSAtPiB0ZXN0IHswLCB0ZXN0fSB0ZXN0MiB7MX0gdGVzdDMgezJ9IHRlc3Q0XG4iCgkJCSArICJ7dGVzdCB7MCwgdGVzdH0gdGVzdDIgezF9IHRlc3QzIHsyfSB0ZXN0NH0gdGVzdDUgezMgIC0+IHRlc3QgezAsIHRlc3R9IHRlc3QyIHsxfSB0ZXN0MyB7Mn0gdGVzdDRcblxuXG4iOwoJCQoJCVBhdHRlcm4gcGF0dGVybiA9IFBhdHRlcm4uY29tcGlsZShyZWdleCwgUGF0dGVybi5NVUxUSUxJTkUpOwoJCU1hdGNoZXIgbWF0Y2hlciA9IHBhdHRlcm4ubWF0Y2hlcihzdHJpbmcpOwoJCQoJCXdoaWxlIChtYXRjaGVyLmZpbmQoKSkgewoJCQlTeXN0ZW0ub3V0LnByaW50bG4obWF0Y2hlci5ncm91cCgxKSk7CgkJfQoJfQp9
{0}
{0,test}
test {0,test}
{0,test} test2
test {0,test} test2
test {0, test} test2 {1} test3 {2}
test {0, test} test2 {1} test3 {2} test4
test {0, test} test2 {1} test3 {2} test4
{0}
{0,test}
test {0,test}
{0,test} test2
test {0,test} test2
test {0, test} test2 {1} test3 {2}
test {0, test} test2 {1} test3 {2}
test {0, test} test2 {1} test3 {2}
test {0, test} test2 {1} test3 {2}
test {0, test} test2 {1} test3 {2} test4
test {0, test} test2 {1} test3 {2} test4
test {0, test} test2 {1} test3 {2}
test {0, test} test2 {1} test3 {2}
test {0, test} test2 {1} test3 {2}
test {0, test} test2 {1} test3 {2}
test {0, test} test2 {1} test3 {2} test4
test {0, test} test2 {1} test3 {2} test4
test {0, test} test2 {1} test3 {2} test4