#include <iostream>
#include <sstream>
#include <fstream>
#include <stack>
void test_branch(std::ostream& _out, std::istream& _in){
std::stack<char> st;
char c;
int r = 1;
while(_in.get(c) && !_in.fail()){
if(c == '\n' || c == '\r')
break;
else if(c == '[' || c == '(' || c == '{')
st.push(c);
else if(c == ']' || c == ')' || c == '}'){
if(st.empty()){
r = 0;
break;
}
if(st.top() == '(' && c == ')' ||
st.top() == '[' && c == ']' ||
st.top() == '{' && c == '}')
st.pop();
else {
r = 0;
break;
}
}
}
if(! st.empty())
r = 0;
_out << ((r) ? "ПРАВИЛЬНО." : "НЕПРАВИЛЬНО.") << std::endl;
}
int main(void) {
//с консоли
test_branch(std::cout, std::cin);
/* со строкового-потока
char s[] = "Лвыо(лдв)дло((влдо)лоады)щ{{df}]";
std::istringstream sp(s);
test_branch(std::cout, sp);
*/
/* из файла
std::ifstream fin("intput.txt");
std::ofstream fout("output.txt");
test_branch(fout, fin);
fin.close();
fout.close();
*/
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPGZzdHJlYW0+CiNpbmNsdWRlIDxzdGFjaz4KCnZvaWQgdGVzdF9icmFuY2goc3RkOjpvc3RyZWFtJiBfb3V0LCBzdGQ6OmlzdHJlYW0mIF9pbil7CglzdGQ6OnN0YWNrPGNoYXI+IHN0OwoJY2hhciBjOwoJaW50ICByID0gMTsKCgl3aGlsZShfaW4uZ2V0KGMpICYmICFfaW4uZmFpbCgpKXsKCQlpZihjID09ICdcbicgfHwgYyA9PSAnXHInKQoJCQlicmVhazsKCQllbHNlIGlmKGMgPT0gJ1snIHx8IGMgPT0gJygnIHx8IGMgPT0gJ3snKQoJCQlzdC5wdXNoKGMpOwoJCWVsc2UgaWYoYyA9PSAnXScgfHwgYyA9PSAnKScgfHwgYyA9PSAnfScpewoJCQlpZihzdC5lbXB0eSgpKXsKCQkJCXIgPSAwOwoJCQkJYnJlYWs7CgkJCX0KCQkJaWYoc3QudG9wKCkgPT0gJygnICYmIGMgPT0gJyknIHx8IAoJCQkgICBzdC50b3AoKSA9PSAnWycgJiYgYyA9PSAnXScgfHwJCgkJCSAgIHN0LnRvcCgpID09ICd7JyAmJiBjID09ICd9JykKCQkJCXN0LnBvcCgpOwoJCQllbHNlIHsKCQkJCXIgPSAwOwoJCQkJYnJlYWs7CgkJCX0KCQl9Cgl9CgoJaWYoISBzdC5lbXB0eSgpKQoJCXIgPSAwOwoJX291dCA8PCAoKHIpID8gItCf0KDQkNCS0JjQm9Cs0J3Qni4iIDogItCd0JXQn9Cg0JDQktCY0JvQrNCd0J4uIikgPDwgc3RkOjplbmRsOwp9CgppbnQgbWFpbih2b2lkKSB7CgkvL9GBINC60L7QvdGB0L7Qu9C4Cgl0ZXN0X2JyYW5jaChzdGQ6OmNvdXQsIHN0ZDo6Y2luKTsKLyogINGB0L4g0YHRgtGA0L7QutC+0LLQvtCz0L4t0L/QvtGC0L7QutCwCgljaGFyIHNbXSA9ICLQm9Cy0YvQvijQu9C00LIp0LTQu9C+KCjQstC70LTQvinQu9C+0LDQtNGLKdGJe3tkZn1dIjsKCXN0ZDo6aXN0cmluZ3N0cmVhbSBzcChzKTsKCXRlc3RfYnJhbmNoKHN0ZDo6Y291dCwgc3ApOwoqLwoKLyogINC40Lcg0YTQsNC50LvQsAoJc3RkOjppZnN0cmVhbSBmaW4oImludHB1dC50eHQiKTsKCXN0ZDo6b2ZzdHJlYW0gZm91dCgib3V0cHV0LnR4dCIpOwoJdGVzdF9icmFuY2goZm91dCwgZmluKTsKCWZpbi5jbG9zZSgpOwoJZm91dC5jbG9zZSgpOwoqLwoJcmV0dXJuIDA7Cn0=