
#include <stdio.h>

#define SIZE 10

double stack[SIZE];
int sp;

void push(double value);
double pop(void);
int isFull(void);
int isEmpty(void);
void reset(void);
void answer(void);

int main(void)
{
    int resp;
    double data, a, b;

    reset();

    while(1){

        int result = scanf("%d", &resp);

        if(result == EOF){
    break;
}

if(result != 1){
    printf("Invalid input\n");
    break;
}

        if(resp == 0) break;

        switch(resp){

            case 1:
                if(sp < 2){
                    printf("Not enough data in stack\n");
                    break;
                }
                b = pop();
                a = pop();
                push(a + b);
                break;

            case 2:
                if(sp < 2){
                    printf("Not enough data in stack\n");
                    break;
                }
                b = pop();
                a = pop();
                push(a - b);
                break;

            case 3:
                if(sp < 2){
                    printf("Not enough data in stack\n");
                    break;
                }
                b = pop();
                a = pop();
                push(a * b);
                break;

            case 4:
                if(sp < 2){
                    printf("Not enough data in stack\n");
                    break;
                }

                b = pop();
                a = pop();

                if(b == 0){
                    printf("Cannot divide by zero\n");
                    push(a);
                    push(b);
                    break;
                }

                push(a / b);
                break;

    		case 5:    if(scanf("%lf", &data) != 1){
    				   printf("Invalid input\n");
    				   return 1;
						  }

						 push(data);
						 break;

            case 9:
                answer();
                break;

            default:
                printf("Invalid command\n");
                break;
        }
    }

    return 0;
}

void push(double value)
{
    if(isFull()){
        printf("stack is full\n");
    }else{
        stack[sp++] = value;
    }
}

double pop(void)
{
    if(isEmpty()){
        printf("stack is empty\n");
        return 0;
    }else{
        return stack[--sp];
    }
}

int isFull(void)
{
    if(sp >= SIZE){
        return 1;
    }else{
        return 0;
    }
}

int isEmpty(void)
{
    if(sp <= 0){
        return 1;
    }else{
        return 0;
    }
}


void answer(void)
{
    double sum = 0;
    int i;

    for(i = 0; i < sp; i++){
        printf("Data %d\n", i + 1);
        sum += stack[i];
    }

    printf("Answer %g\n", sum);
}


void reset(void)
{
    sp = 0;
}
