#include #define rep(i,n) for(int i = 0; i < (n); ++i) #define srep(i,s,t) for (int i = s; i < t; ++i) #define drep(i,n) for(int i = (n)-1; i >= 0; --i) using namespace std; typedef long long int ll; typedef pair P; #define yn {puts("Yes");}else{puts("No");} #define MAX_N 200005 int main() { string s; cin >> s; int n = s.size(); int sumr[n+1] = {}; drep(i,n){ if(i < n-1)sumr[i] += sumr[i+1]; if(s[i] == ')')sumr[i]++; } int now = n; int x[n+1]; x[n] = n; drep(i,n){ if(s[i] == '*')now = i; x[i] = now; } int now2 = n; now = n; int y[n+1]; y[n] = n; drep(i,n){ if(s[i] == '^'){ now2 = now; now = i; } y[i] = now2; } ll ans = 0; rep(i,n){ if(s[i] == '('){ ans += sumr[x[y[i]]]; } } cout << ans << ' '; s = ')' + s; n++; int suml[n] = {}; now = 0; int now1 = 0; now2 = 0; rep(i,n){ if(i > 0)suml[i] = suml[i-1]; if(s[i] == '(')suml[i]++; if(s[i] == '*')now = i; y[i] = now; if(s[i] == '^'){ now2 = now1; now1 = i; } x[i] = now2; } ans = 0; rep(i,n){ if(s[i] == ')'){ ans += suml[y[x[i]]]; } } cout << ans << endl; return 0; }