#include <cstdio>
#include <cstring>
bool func(char * str, int kol){
for (int i = 0; i < kol; i++){
if (str[i] == ')'){
for (int j = i - 1; j >= 0; j--){
if (str[j] == '('){
str[i] = str[j] = '*';
break;
func(str, kol);
}
if (str[j] == '{'){
printf("ERROR");
return false;
}
}
}
if (str[i] == '}'){
for (int j = i - 1; j >= 0; j--){
if (str[j] == '{'){
str[i] = str[j] = '*';
break;
func(str, kol);
}
if (str[j] == '('){
printf("ERROR");
return false;
}
}
}
}
}
int main(void) {
char test[] = "(";
printf("%s", (func(test, strlen(test))) ? "OK" : "FAIL");
return 0;
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPGNzdHJpbmc+Cgpib29sIGZ1bmMoY2hhciAqIHN0ciwgaW50IGtvbCl7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IGtvbDsgaSsrKXsKICAgICAgICBpZiAoc3RyW2ldID09ICcpJyl7CiAgICAgICAgICAgIGZvciAoaW50IGogPSBpIC0gMTsgaiA+PSAwOyBqLS0pewogICAgICAgICAgICAgICAgaWYgKHN0cltqXSA9PSAnKCcpewogICAgICAgICAgICAgICAgICAgIHN0cltpXSA9IHN0cltqXSA9ICcqJzsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBmdW5jKHN0ciwga29sKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChzdHJbal0gPT0gJ3snKXsKICAgICAgICAgICAgICAgICAgICBwcmludGYoIkVSUk9SIik7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChzdHJbaV0gPT0gJ30nKXsKICAgICAgICAgICAgZm9yIChpbnQgaiA9IGkgLSAxOyBqID49IDA7IGotLSl7CiAgICAgICAgICAgICAgICBpZiAoc3RyW2pdID09ICd7Jyl7CiAgICAgICAgICAgICAgICAgICAgc3RyW2ldID0gc3RyW2pdID0gJyonOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgIGZ1bmMoc3RyLCBrb2wpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKHN0cltqXSA9PSAnKCcpewogICAgICAgICAgICAgICAgICAgIHByaW50ZigiRVJST1IiKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCmludCBtYWluKHZvaWQpIHsKCWNoYXIgdGVzdFtdID0gIigiOwoJcHJpbnRmKCIlcyIsIChmdW5jKHRlc3QsIHN0cmxlbih0ZXN0KSkpID8gIk9LIiA6ICJGQUlMIik7CglyZXR1cm4gMDsKfQo=