input: Write a python function to convert an infix expression to a prefix expression.
  assert infixToPrefix("(A - B/C) * (A/K-L)") == "*-A/BC-/AKL"
  assert infixToPrefix("A+B*C") == "+A*BC"
  assert infixToPrefix("(A+B)*(C-D)") == "*+AB-CD"
output: def infixToPrefix(expression):
      def precedence(op):
          if op == '+' or op == '-':
              return 1
          if op == '*' or op == '/':
              return 2
          return 0
  
      def infixToPostfix(exp):
          stack = []
          result = ''
          for char in exp:
              if char.isalnum():
                  result += char
              elif char == '(':
                  stack.append(char)
              elif char == ')':
                  while stack and stack[-1] != '(':
                      result += stack.pop()
                  stack.pop()
              else:
                  while stack and precedence(char) <= precedence(stack[-1]):
                      result += stack.pop()
                  stack.append(char)
          while stack:
              result += stack.pop()
          return result
  
      def reverseExpression(exp):
          exp = exp[::-1]
          exp = list(exp)
          for i in range(len(exp)):
              if exp[i] == '(':
                  exp[i] = ')'
              elif exp[i] == ')':
                  exp[i] = '('
          return ''.join(exp)
  
      reversedInfix = reverseExpression(expression)
      postfixExp = infixToPostfix(reversedInfix)
      prefixExp = reverseExpression(postfixExp)
      return prefixExp