// #include <bitset>
// #include <cmath>
// #include <cstring>
// #include <deque>
// #include <functional>
// #include <iostream>
// #include <map>
// #include <numeric>
// #include <queue>
// #include <set>
// #include <stack>
// #include <stdlib.h>
// #include <string>
// #include <utility>
// #include <vector>
#include <bits/stdc++.h>

#define rep(i, n) for (int i = 0; i < (n); i++)
#define loop(i, x, n) for (int i = (x); i < (n); i++)
#define all(v) (v).begin(), (v).end()
#define int long long
#define INF 1e9
using namespace std;
template<typename T> void cmin(T &a, T b) { a = min(a, b); }
template<typename T> void cmax(T &a, T b) { a = max(a, b); }

signed main() {
  string s;
  cin >> s;

  int idx, len = (int)s.size();
  rep(i, s.size()) if (s[i] == '*') idx = i;
  int left = idx - 1, right = idx + 1;
  int ans = 0;
  while (0 <= left && right < len) {
    if (s[left] == '(' && s[right] == ')') {
      ans++;
      left--;
      right++;
    }
    if (0 < left && s[left - 1] == '(' && s[left] == ')') left -= 2;
    if (right < len - 1 && s[right] == '(' && s[right + 1] == ')') right += 2;
  }

  cout << ans << endl;
  return 0;
}

