#include <stdio.h>
#include <ctype.h>
#include <string.h>
#define MAX 105
char stack[MAX];
int top = -1;
void push(char c) {
    if (top < MAX - 1) stack[++top] = c;
}
char pop() {
    if (top >= 0) return stack[top--];
    return '\0';
}

char peek() {
    if (top >= 0) return stack[top];
    return '\0';
}

int precedence(char op) {
    if (op == '^') return 3;
    if (op == '*' || op == '/') return 2;
    if (op == '+' || op == '-') return 1;
    return 0;
}

int isRightAssociative(char op) {
    return (op == '^');
}

int isValidChar(char c) {
    return (isalnum(c) || c == '+' || c == '-' || c == '*' || c == '/' || c == '^' || c == '(' || c == ')');
}
int main() {
    char infix[MAX], postfix[MAX];
    int j = 0, valid = 1;
    
    if (!fgets(infix, sizeof(infix), stdin)) {
        printf("Invalid input\n");
        return 0;
    }
    infix[strcspn(infix, "\n")] = 0;

    for (int i = 0; infix[i]; i++) {
        char c = infix[i];
        if (!isValidChar(c)) {
            valid = 0; break;
        }

        if (isalnum(c)) {
            postfix[j++] = c;
        } else if (c == '(') {
            push(c);
        } else if (c == ')') {
            while (top >= 0 && peek() != '(') {
                postfix[j++] = pop();
            }
            if (top < 0 || peek() != '(') {
                valid = 0; break;
            }
            pop();
        } else {
            while (top >= 0 && precedence(peek()) > 0 &&
                  (precedence(peek()) > precedence(c) ||
                  (precedence(peek()) == precedence(c) && !isRightAssociative(c)))) {
                postfix[j++] = pop();
            }
            push(c);
        }
    }
    
    while (top >= 0) {
        if (peek() == '(' || peek() == ')') {
            valid = 0; break;
        }
        postfix[j++] = pop();
    }
    postfix[j] = '\0';

    if (!valid) {
        printf("Java runtime error: Exception in thread "main" java.util.NoSuchElementException: No line found
	at java.base/java.util.Scanner.nextLine(Scanner.java:1651)
	at InfixToPostfix.main(InfixToPostfix.java:37)
\n");
    } else {
        printf("%s\n", postfix);
    }
    return 0;
}