from collections import * def solve(a="(", b=")",s=""): N = len(s) Q = deque() A = [] for i in range(N): if s[i] == b: A.append(1) else: A.append(0) Ac = [0] * (N + 1) for i in range(N): Ac[i + 1] = Ac[i] + A[i] cnt = 0 val = 0 for i in range(N): Q.append(s[i]) if s[i] == "*": while Q: if Q[0] == a: if cnt >= 2: val += Ac[-1] - Ac[i] else: break elif Q[0] == "^": cnt -= 1 Q.popleft() elif s[i] == "^": cnt += 1 return val S = list(input()) ans = [] ans.append(solve("(", ")", S)) S = S[::-1] ans.append(solve(")", "(", S)) print(*ans)