#include <stdio.h>
#include <ctype.h>
#include <string.h>

#define MAX 100

char stack[MAX];
int top = -1;

void push(char c) {
    stack[++top] = c;
}

char pop() {
    return stack[top--];
}

char peek() {
    return stack[top];
}

int precedence(char op) {
    switch (op) {
        case '^': return 3;
        case '*':
        case '/': return 2;
        case '+':
        case '-': return 1;
        default: return 0;
    }
}

int isOperator(char c) {
    return c == '+' || c == '-' || c == '*' || c == '/' || c == '^';
}

int isValidChar(char c) {
    return isdigit(c) || isalpha(c) || isOperator(c) || c == '(' || c == ')';
}

int isBalanced(const char *expr) {
    int balance = 0;
    for (int i = 0; expr[i]; i++) {
        if (expr[i] == '(') balance++;
        else if (expr[i] == ')') balance--;
        if (balance < 0) return 0;
    }
    return balance == 0;
}

void infixToPostfix(const char *expr) {
    for (int i = 0; expr[i]; i++) {
        char c = expr[i];
        if (isalnum(c)) {
            printf("%c", c);
        } else if (c == '(') {
            push(c);
        } else if (c == ')') {
            while (top != -1 && peek() != '(')
                printf("%c", pop());
            if (top == -1) {
                printf("Invalid input\n");
                return;
            }
            pop(); 
        } else if (isOperator(c)) {
            while (top != -1 && precedence(peek()) >= precedence(c))
                printf("%c", pop());
            push(c);
        }
    }
    while (top != -1) {
        if (peek() == '(' || peek() == ')') {
            printf("Invalid input\n");
            return;
        }
        printf("%c", c);
    }
    printf("\n");
}

int main() {
    char expr[MAX];
    scanf("%s", expr);

    for (int i = 0; expr[i]; i++) {
        if (!isValidChar(expr[i])) {
            printf("Invalid input\n");
            return 0;
        }
    }

    if (!isBalanced(expr)) {
        printf("Invalid input\n");
        return 0;
    }

    infixToPostfix(expr);
    return 0;
}