#include <stdio.h>
#include <stack>
#include <queue>
#include <vector>

using namespace std;

stack<long long> num_children;
stack<long long> sirka;
stack<long long> velkost;
stack<long long> cierne;

int main() {
  num_children.push(0);
  while(1) {
    int c = getchar();
    if(c == '(')
      num_children.push(0);
    if(c == ')' || c == EOF) {
      long long nc = num_children.top();
      num_children.pop();
      if(num_children.size()) {
        long long n_nc = num_children.top()+1;
        num_children.pop();
        num_children.push(n_nc);
      }
      long long moj_w = 1;
      long long moj_h = 1;
      long long bielych = 0;
      for(long long i = 0; i < nc; i++) {
        long long vel = velkost.top();
        velkost.pop();
        long long sir = sirka.top();
        sirka.pop();
        long long cie = cierne.top();
        cierne.pop();
        if(vel+1 > moj_h)
          moj_h = vel+1;
        moj_w += sir+1;
        bielych += cie;
      }
      velkost.push(moj_h);
      sirka.push(moj_w);
      cierne.push(moj_w*moj_h - bielych);
      if(c == EOF) {
        printf("%lld\n", bielych);
        return 0;
      }
    }
  }
}
	
