/* Infix evaluator
   Sten Morten Andersen, 2003
   
formula  ::=
        '0' | '1' |
        '-' formula |
        '(' formula ( 'v' | '&' | '>' | '=' ) formula ')'
*/

char ch;
void error() { printf("error"); exit(1); }
void get_char() {
	do ch = getchar(); 
	while ( ch != '0' && ch != '1' && ch != '('
	       && ch != ')' && ch != 'v' && ch != '&'
		   && ch != '>' && ch != '=' );
}

void infix(int* v) {
	int l, r; char op;
	get_char();
	switch( ch ) {
		case '0': 
		case '1': 
			*v = ch - '0';         break;
		case '-':
			infix( &l ); *v = !l;  break;
		case '(':
			infix( &l );
			get_char();
			op = ch;
			infix( &r );
			get_char();
			if ( ch != ')' ) error();
			switch ( op ) {
				case 'v': *v = l || r; break;
				case '&': *v = l && r; break;
				case '>': *v = l <= r; break;
				case '=': *v = l == r; break;
				default: error();
			}
		break;
	}
}

int main() {
	int value;
	infix( &value );
	printf("%c\n", value+'0');
	return 0;
}

