# -*- coding: utf-8 -*-

s = raw_input()

ops, nums = [], []

n = len(s)

ret = -1
flag = True
i = 0
while i < n:
    if s[i].isdigit():
        j = i
        num = 0
        while j < n and s[j].isdigit():
            num = num * 10 + ord(s[j]) - ord('0')
            j += 1

        nums.append(num)
        i = j - 1
    elif s[i] == ')':
        if len(ops) == 0:
            flag = False
            break
        op = ops[-1]
        ops.pop()
        if op == '^' and len(nums) > 0:
            ans = nums[-1]
            nums.pop()
            nums.append(ans + 1)
        elif (op == '*' or op == '+') and len(nums) > 1:
            a, b = nums[-1], nums[-2]
            nums.pop()
            nums.pop()
            nums.append((a * b) if op == '*' else (a + b))
        else:
            flag = False
            break
        if len(ops) == 0 or ops[-1] is not '(':
            flag = False
            break
        ops.pop()
        if len(ops) == 0:
            ret = nums[-1]
        if len(ops) == 0 and i < n - 1 and len(nums) > 0:
            nums.pop()


    elif s[i] == ' ':
        pass
    else:
        ops.append(s[i])

    i += 1

if len(ops) > 0:
    flag = False

if ret is not -1:
    print ret
else:
    print -1 if flag == False else nums[-1]