#include<stdio.h>
#include<string.h>
#include<stdbool.h>

#define MAX_LEN 32

int main(){
    char s[MAX_LEN];
    int stack[MAX_LEN];
    int top = -1;
    int score = 0;
    int len;
    bool is_valid = true;
    
    if(fgets(s,sizeof(s),stdin) == NULL){
        printf("Error reading input");
        return 1;
    }
    
    len = strlen(s);
    if(len>0 && s[len - 1]=='\n'){
        s[len - 1 ] = '\0';
        len--;
    }
    
    for(int i=0;i<len;i++){
        if(s[i]!='('&&s[i]!=')'){
            is_valid = false;
            break;
        }
    }
    
    if(!isvalid){
        printf("Invalid input");
        return 0;
    }
    
    for(int i = 0;i<len;i++){
        if(s[i]=='('){
            top++;
            stack[top]=score;
            score=0;
        }else{
            int parent_score = stack[top];
            top--;
            int current_value;
            if(score==0){
                current_value = 1;
            }else{
                current_value = 2 * score;
            }
            score = parent_score + current_value;
        }
    }
    printf("%d",score);
    return 0;
}