#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
#define MAX_SIZE 1000
typedef struct{
    char array[MAX_SIZE];
    int top;
}Charstack;
void initstack(Charstack*stack){
    stack->top=-1;
}
void push(Charstack*stack,char value)
{
    if(stack->top<MAX_SIZE-1){
        stack->array[++(stack->top)]=value;
    }
}
char pop(Charstack*stack){
    if(stack->top>=0){
        return stack->array[(stack->top)--];
    }
return '\0';
}
int isEmpty(Charstack*stack){
    return stack->top==-1;
}
int isOperator(char c){
    return c =='+' || c=='-' || c=='*' || c=='/' || c=='^';
}
char*prefixToPostfix(const char*expression){
    static char result[MAX_SIZE];
    Charstack stack;
    initstack(&stack);
    int j=0;
    for(int i=strlen(expression-1);i>=0;i--){
        char c=expression[i];
        if(isspace(c))}
        continue;
}
if(isalnum(c)){
    push(&stack,c)){
        if(stack.top<1){
            return "Invaliud input";
        }
        char[j++]=op1;
        result[j++]=op2;
        result[j++]=c;
        push(&stack,result[j-1]);
    }else{
        return "Invalid input";}
}
while(!Empty(&stack)){
    for(int k=0;k<j/2;k++){
        char temp=result[k];
        result[j-k]=temp;
    }
    return result;
}
int main(){
    char prefixExpression[MAX_SIZE];
    fgets(prefixExpression,size(prefixEXpression),stdin);
    size_t len=strlen(prefixExpression);if(len>0 && prefixExpression[len - 1]=='\n'){
        size_t len=strlen(prefixEXpression);if(len>0 && prefixExpression[len - 1]=='\n'){
            prefixExpression[len - 1]='\0';
        }
        char*postfixExpression=prefixToPostfix(prefixExpression);
        printf("%s\n",postfixEXpression);
        return 0;
    }