class RPN:
def emit(self, code):
def _emit():
def _num(o):
try: return int(o)
except: return int(o, 16)
stack = []
for o in code.split():
try:
o = _num(o)
stack.append(o)
except:
b,a = stack.pop(), stack.pop()
stack.append(a+b if o in ("+", "add", "plus") else a-b if o in ("-", "sub", "minus") \
else a*b if o in ("*", "mul", "mult") else a/b if o in ("/", "div") \
else a%b if o in ("%", "mod", "rem") else None)
return stack[0]
return _emit
a = RPN()
print a.emit("3 10 mod")()