stack<char> stack1;
bool changshu() {
string str;
getline(cin,str);
for (int i = 0; i < str.size(); i++) {
if (str[i] == '(' || str[i] == '{' || str[i] == '[') {
stack1.push(str[i]);
}
if (str[i] == ')') {
if (stack1.size() == 0) return false;
char t = stack1.top();
stack1.pop();
if (t == '(')
continue;
else
return false;
}
if (str[i] == ']') {
if (stack1.size() == 0) return false;
char t = stack1.top();
stack1.pop();
if (t == '[')
continue;
else
return false;
}
if (str[i] == '}') {
if (stack1.size() == 0) return false;
char t = stack1.top();
stack1.pop();
if (t == '{')
continue;
else
return false;
}
if (stack1.size() == 0)
return true;
}
if(stack1.size()!=0) return false;
}
int main() {
bool res= changshu();
return 0;
}