#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 answer(void);
void reset(void);
int main(void){
	double data, a,b;
	int resp;
    reset();
    
    while (1){
    	scanf("%d",&resp);
    	switch(resp){
    	case 1: printf("足し算 ");
    	b=pop();
    	a=pop();
    	push(a+b);
    	break;
    	
    	case 2: printf("引き算\n");
    	b=pop();
    	a=pop();
    	push(a-b);
    	break;
    	
    	case 3:printf("掛け算\n");
    	b=pop();
    	a=pop();
    	push(a*b);
    	break;
    	
    	case 4: printf("割り算\n");
    	b=pop();
    	a=pop();
    	push(a/b);
    	break; 
    	
    	case 5: printf("データ入力");
    	scanf("%lf", &data);
    	push(data);
    	printf("データ=%lf\n",data);
    	break;
    	
    	case 9:
    	answer();
    	return 0;
    	}
    }
    answer();
    return 0;
}

void push(double value){
	if(isFull()){
		printf("スタックが入りませんでした\n");
	} else {
		stack[++sp]=value;
	}

}
    
    double pop(void) {
    	if(isEmpty()){
    		printf("スタックが空で取り出せませんでした");
    		return 0;
    	} else {
    		return stack[sp--];
    	}
    }
    
    int isFull(void){
    	if(sp>=SIZE-1){
    		return 1;
    	} else {
    		return 0;
    	}
    }
int isEmpty(void){
	if(sp<0){
		return 1;
	} else {
		return 0;
	}
}
void answer(){
	printf("answer:%f",stack[sp]);
}
void reset(void){
	sp=-1;
}