#pragma comment(linker, "/STACK:60777216") #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long double ld; typedef long long ll; typedef pair pii; typedef pair pdd; typedef vector vi; typedef vector vd; typedef pair pl; #define FOR(i,a,b) for(int i=(a);i<(b);i++) #define REP(i,n) FOR(i,0,n) #define SORT(v) sort((v).begin(),(v).end()) #define UN(v) SORT(v),(v).erase(unique((v).begin(),(v).end()),(v).end()) #define CL(a,b) memset(a,b,sizeof a) #define pb push_back int main(){ #ifdef LocalHost freopen("input.txt","r",stdin); //freopen("output.txt","w",stdout); #endif #ifndef LocalHost freopen("brackets.in","r",stdin); freopen("brackets.out","w",stdout); #endif string s; cin>>s; vector c; REP(i,s.size()){ if(s[i]=='{' || s[i]=='(' || s[i]=='<' || s[i]=='[') c.pb(s[i]); else{ if(s[i]==']')if(c.empty() || !c.back()=='['){puts("0");return 0;} else c.pop_back(); if(s[i]=='>')if(c.empty() || !c.back()=='<'){puts("0");return 0;} else c.pop_back(); if(s[i]==')')if(c.empty() || !c.back()=='('){puts("0");return 0;} else c.pop_back(); if(s[i]=='}')if(c.empty() || !c.back()=='{'){puts("0");return 0;} else c.pop_back(); } } if(c.empty()) puts("1"); else puts("0"); #ifdef LocalHost // printf("TIME: %.3lf\n",ld(clock())/CLOCKS_PER_SEC); #endif return 0; }