#逆ポーランド記法(Reverse Polish Notation, RPN)
class RPN():
    def __init__(self):
        self.top = 0
        self.S = []
        self.MAX = 100

    def isEmpty(self):
        return self.top == 0

    def isFull(self):
        #return self.top >= self.MAX - 1
        return self.top >= self.MAX

    def push(self,x):
        if self.isFull():
            raise ValueError("オーバーフロー")
        self.top+=1
        self.S.append(x)

    def pop(self):
        if self.isEmpty():
            raise ValueError("アンダーフロー")
        self.top-=1
        #print("self.top:{}".format(self.top))
        #print("S:{}".format(self.S))
        return self.S.pop(self.top)


X = input().split(" ")
rpn = RPN()
for x in X:
    #print(x)
    if x.isnumeric():
        #print("num")
        rpn.push(x)
    else:
        #print("dig")
        num_2 =rpn.pop()
        num_1 =rpn.pop()
        res = eval(str(num_1) + x + str(num_2))
        rpn.push(res)

print(rpn.pop()) class RPN():
    def __init__(self):
        self.top = 0
        self.S = []
        self.MAX = 100

    def isEmpty(self):
        return self.top == 0

    def isFull(self):
        #return self.top >= self.MAX - 1
        return self.top >= self.MAX

    def push(self,x):
        if self.isFull():
            raise ValueError("オーバーフロー")
        self.top+=1
        self.S.append(x)

    def pop(self):
        if self.isEmpty():
            raise ValueError("アンダーフロー")
        self.top-=1
        #print("self.top:{}".format(self.top))
        #print("S:{}".format(self.S))
        return self.S.pop(self.top) RPN def __init__(self):
        self.top = 0
        self.S = []
        self.MAX = 100

     __init__ self.top = 0 self.top self top 0 self.S = [] self.S self S [] self.MAX = 100 self.MAX self MAX 100 self self def isEmpty(self):
        return self.top == 0

     isEmpty return self.top == 0 self.top == 0 self.top self top 0 self self def isFull(self):
        #return self.top >= self.MAX - 1
        return self.top >= self.MAX

     isFull return self.top >= self.MAX self.top >= self.MAX self.top self top self.MAX self MAX self self def push(self,x):
        if self.isFull():
            raise ValueError("オーバーフロー")
        self.top+=1
        self.S.append(x)

     push if self.isFull():
            raise ValueError("オーバーフロー")
         self.isFull() self.isFull self isFull raise ValueError("オーバーフロー") ValueError("オーバーフロー") ValueError "オーバーフロー" self.top+=1 self.top self top 1 self.S.append(x) self.S.append self.S self S append x self self x x def pop(self):
        if self.isEmpty():
            raise ValueError("アンダーフロー")
        self.top-=1
        #print("self.top:{}".format(self.top))
        #print("S:{}".format(self.S))
        return self.S.pop(self.top) pop if self.isEmpty():
            raise ValueError("アンダーフロー")
         self.isEmpty() self.isEmpty self isEmpty raise ValueError("アンダーフロー") ValueError("アンダーフロー") ValueError "アンダーフロー" self.top-=1 self.top self top 1 return self.S.pop(self.top) self.S.pop(self.top) self.S.pop self.S self S pop self.top self top self self X = input().split(" ") X input().split(" ") ().split () input split " " rpn = RPN() rpn RPN() RPN for x in X:
    #print(x)
    if x.isnumeric():
        #print("num")
        rpn.push(x)
    else:
        #print("dig")
        num_2 =rpn.pop()
        num_1 =rpn.pop()
        res = eval(str(num_1) + x + str(num_2))
        rpn.push(res) x X if x.isnumeric():
        #print("num")
        rpn.push(x)
    else:
        #print("dig")
        num_2 =rpn.pop()
        num_1 =rpn.pop()
        res = eval(str(num_1) + x + str(num_2))
        rpn.push(res) x.isnumeric() x.isnumeric x isnumeric rpn.push(x) rpn.push rpn push x num_2 =rpn.pop() num_2 rpn.pop() rpn.pop rpn pop num_1 =rpn.pop() num_1 rpn.pop() rpn.pop rpn pop res = eval(str(num_1) + x + str(num_2)) res eval(str(num_1) + x + str(num_2)) eval str(num_1) + x + str(num_2) str(num_1) + x str(num_1) str num_1 x str(num_2) str num_2 rpn.push(res) rpn.push rpn push res print(rpn.pop()) print rpn.pop() rpn.pop rpn pop X = input().split(" ") input().split(" ") X res = eval(str(num_1) + x + str(num_2)) eval(str(num_1) + x + str(num_2)) res rpn = RPN() RPN() rpn num_2 =rpn.pop() rpn.pop() num_2 num_1 =rpn.pop() rpn.pop() num_1 class RPN():
    def __init__(self):
        self.top = 0
        self.S = []
        self.MAX = 100

    def isEmpty(self):
        return self.top == 0

    def isFull(self):
        #return self.top >= self.MAX - 1
        return self.top >= self.MAX

    def push(self,x):
        if self.isFull():
            raise ValueError("オーバーフロー")
        self.top+=1
        self.S.append(x)

    def pop(self):
        if self.isEmpty():
            raise ValueError("アンダーフロー")
        self.top-=1
        #print("self.top:{}".format(self.top))
        #print("S:{}".format(self.S))
        return self.S.pop(self.top) class RPN():
    def __init__(self):
        self.top = 0
        self.S = []
        self.MAX = 100

    def isEmpty(self):
        return self.top == 0

    def isFull(self):
        #return self.top >= self.MAX - 1
        return self.top >= self.MAX

    def push(self,x):
        if self.isFull():
            raise ValueError("オーバーフロー")
        self.top+=1
        self.S.append(x)

    def pop(self):
        if self.isEmpty():
            raise ValueError("アンダーフロー")
        self.top-=1
        #print("self.top:{}".format(self.top))
        #print("S:{}".format(self.S))
        return self.S.pop(self.top) RPN
#逆ポーランド記法(Reverse Polish Notation, RPN)
class RPN():
    def __init__(self):
        self.top = 0
        self.S = []
        self.MAX = 100

    def isEmpty(self):
        return self.top == 0

    def isFull(self):
        #return self.top >= self.MAX - 1
        return self.top >= self.MAX

    def push(self,x):
        if self.isFull():
            raise ValueError("オーバーフロー")
        self.top+=1
        self.S.append(x)

    def pop(self):
        if self.isEmpty():
            raise ValueError("アンダーフロー")
        self.top-=1
        #print("self.top:{}".format(self.top))
        #print("S:{}".format(self.S))
        return self.S.pop(self.top)


X = input().split(" ")
rpn = RPN()
for x in X:
    #print(x)
    if x.isnumeric():
        #print("num")
        rpn.push(x)
    else:
        #print("dig")
        num_2 =rpn.pop()
        num_1 =rpn.pop()
        res = eval(str(num_1) + x + str(num_2))
        rpn.push(res)

print(rpn.pop())
