input: def evaluate_postfix(expression: str) -> int:
      """
      Evaluate a postfix expression given as a string.
      Each element in the expression is separated by a space.
      Operands should be numbers, and operators should be one of '+', '-', '*', '/'.
      
      >>> evaluate_postfix("2 3 + 4 5 * *")
      105
      >>> evaluate_postfix("6 2 3 + - 3 8 2 / + * 2 ^ 3 +")
      315
      """
      tokens = expression.split()
      stack = []
      
      for token in tokens:
          if token.isdigit():
              stack.append(int(token))
          else:
              b = stack.pop()
              a = stack.pop()
              if token == '+':
                  stack.append(a + b)
              elif token == '-':
                  stack.append(a - b)
              elif token == '*':
                  stack.append(a * b)
              elif token == '/':
                  stack.append(a // b)  # Use integer division
              elif token == '^':
                  stack.append(a ** b)
      
      return stack.pop()
output:     tokens = expression.split()
      stack = []
      
      for token in tokens:
          if token.isdigit():
              stack.append(int(token))
          else:
              b = stack.pop()
              a = stack.pop()
              if token == '+':
                  stack.append(a + b)
              elif token == '-':
                  stack.append(a - b)
              elif token == '*':
                  stack.append(a * b)
              elif token == '/':
                  stack.append(a // b)  # Use integer division
              elif token == '^':
                  stack.append(a ** b)
      
      return stack.pop()