#include <iostream>
#include <stack>
using namespace std;
bool isBalanced(string s) {
stack<char> st;
for (char ch : s) {
if (ch == '(' || ch == '[' || ch == '{') {
st.push(ch);
} else {
if (st.empty()) return false;
char top = st.top();
if ((ch == ')' && top != '(') ||
(ch == ']' && top != '[') ||
(ch == '}' && top != '{')) {
return false;
}
st.pop();
}
}
return st.empty();
}
int main() {
string s;
while (cin >> s) {
cout << (isBalanced(s) ? "YES" : "NO") << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RhY2s+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpib29sIGlzQmFsYW5jZWQoc3RyaW5nIHMpIHsKICAgIHN0YWNrPGNoYXI+IHN0OwoKICAgIGZvciAoY2hhciBjaCA6IHMpIHsKICAgICAgICBpZiAoY2ggPT0gJygnIHx8IGNoID09ICdbJyB8fCBjaCA9PSAneycpIHsKICAgICAgICAgICAgc3QucHVzaChjaCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKHN0LmVtcHR5KCkpIHJldHVybiBmYWxzZTsKCiAgICAgICAgICAgIGNoYXIgdG9wID0gc3QudG9wKCk7CiAgICAgICAgICAgIGlmICgoY2ggPT0gJyknICYmIHRvcCAhPSAnKCcpIHx8CiAgICAgICAgICAgICAgICAoY2ggPT0gJ10nICYmIHRvcCAhPSAnWycpIHx8CiAgICAgICAgICAgICAgICAoY2ggPT0gJ30nICYmIHRvcCAhPSAneycpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc3QucG9wKCk7CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBzdC5lbXB0eSgpOwp9CgppbnQgbWFpbigpIHsKICAgIHN0cmluZyBzOwogICAgd2hpbGUgKGNpbiA+PiBzKSB7CiAgICAgICAgY291dCA8PCAoaXNCYWxhbmNlZChzKSA/ICJZRVMiIDogIk5PIikgPDwgZW5kbDsKICAgIH0KICAgIHJldHVybiAwOwp9Cg==