import java.util.Scanner;
import java.util.Stack;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String str = in.next();
System.out.print(bracketMatch(str));
}
public static boolean bracketMatch(String str) {
Stack<Character> stack = new Stack<>();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
// 如果是左括号,入栈
if (c == '(' || c == '[') {
stack.push(c);
}
// 如果是右括号
else if (c == ')' || c == ']') {
// 栈为空,没有匹配的左括号
if (stack.isEmpty()) {
return false;
}
// 弹出栈顶元素并检查是否匹配
char top = stack.pop();
if ((c == ')' && top != '(') || (c == ']' && top != '[')) {
return false;
}
}
}
// 所有括号处理完毕后,栈必须为空才是完全匹配
return stack.isEmpty();
}
}