#include <bits/stdc++.h>
using namespace std;
string s;
int n;
int o[5000] = {0}, c[5000] = {0}, q[5000] = {0};
int forw[5000][5000] = {0}, bac[5000][5000] = {0};
void update(char ch, int i) {
  if (ch == '(') o[i] = 1;
  if (ch == ')') c[i] = 1;
  if (ch == '?') q[i] = 1;
}
int range(int* arr, int l, int r) {
  if (l) return arr[r] - arr[l - 1];
  return arr[r];
}
void calc_forw() {
  for (int i = (0); i < (n); i++) {
    for (int j = (i); j < (n); j++)
      if ((range(o, i, j) + range(q, i, j) - range(c, i, j)) >= 0)
        forw[i][j] = 1;
      else
        forw[i][j] = 0;
    for (int j = (i + 1); j < (n); j++) forw[i][j] += forw[i][j - 1];
  }
}
void calc_bac() {
  for (int i = (0); i < (n); i++)
    for (int j = (i); j < (n); j++)
      if ((range(c, i, j) + range(q, i, j) - range(o, i, j)) >= 0)
        bac[j][i] = 1;
      else
        bac[j][i] = 0;
  for (int j = (0); j < (n); j++)
    for (int i = n - 2; i >= 0; i--)
      if (j >= i) bac[j][i] += bac[j][i + 1];
}
int main() {
  cin >> s;
  n = s.size();
  for (int i = (0); i < (n); i++) update(s[i], i);
  for (int i = (1); i < (n); i++)
    o[i] += o[i - 1], c[i] += c[i - 1], q[i] += q[i - 1];
  calc_forw();
  calc_bac();
  int ans = 0;
  for (int l = (0); l < (n); l++) {
    for (int r = (l); r < (n); r++) {
      if (((r - l + 1) % 2 == 0) && (forw[l][r] == (r - l + 1)) &&
          (bac[r][l] == (r - l + 1)))
        ans++;
    }
  }
  cout << ans << '\n';
}
