#include<stdio.h>
#include<string.h>
typedef struct node
{
int e[101];
}*stack;
char pairs(char a)//判断是否为右括号
{
if (a == '}') return '{';
if (a == ']') return '[';
if (a == ')') return '(';
return 0;
}
bool isValid(char* s) {
int n = strlen(s);
if (n % 2 == 1)
{
return false;
}
int stk[n + 1], top = 0;
for (int i = 0; i < n; i++)
{
char ch = pairs(s[i]);/*判断是否为右括号*/
if (ch) //判断是否为右括号
{
if (top == 0 || stk[top - 1] != ch)
{
return false;
}
top--;//出栈
}
else //入栈
{
stk[top++] = s[i];//左括号入栈
}
}
return top == 0;
}
int main()
{
int b;
char a[101];
gets(a);
b=int(isValid(a));
printf("%d",b);
return 0;
}