#include <iostream> using namespace std; class Stack{ private: int top,maxSize; int *element; public: Stack(int sz){ top=0; maxSize=sz; element=new int[sz]; } bool isFull(){ if(top==maxSize) return true; else return false; } bool isEmpty(){ if(top==0) return true; else return false; } bool push(char ch){ if(isFull()) return false; element[top]=ch; top++; } char pop(){ if(isEmpty()) return 0; return element[--top]; } int check(char *exp){ for(int i=0;exp[i]!='#';i++){ if(exp[i]=='('||exp[i]=='{'||exp[i]=='<'||exp[i]=='['){ push(exp[i]); } if(exp[i]==')'||exp[i]=='}'||exp[i]=='<'||exp[i]==']'){ char c=pop(); if((exp[i]==')'&&c!='(')||(exp[i]=='}'&&c!='{') ||exp[i]=='>'&&c!='<'||exp[i]==']'&&c!='[') return 0; } } return 1; } }; int main(){ Stack s(10); char *e=new char[10]; cin>>e; cout<<s.check(e); return 0; }