#!/usr/bin/perl

use strict;
use warnings;

print "0\n";
while (<>) {
    chomp;
    my @stack;

    # assuming only one digit numbers
    foreach my $tok (reverse split( / */ )) {
        if ($tok =~ m#[0-9]#) {
            print "$tok ";
        } elsif ($tok eq '(') {
            # parsing backwards, so ( is close, and ) is open
            while ((my $pop = pop @stack) ne ')') {
                print $pop;
            }
        } else {
            if ($tok eq '*') {
                # pop the higher order precidence +s from stack
                while (@stack && $stack[-1] eq '+') {
                    print pop( @stack );
                }
            }
            push( @stack, $tok );
        }
    }
    print reverse( @stack ), "+\n";
}
print "p\n";