program li;
type
stack=array[1..100] of real;
var
s:stack;
top,i,j:integer;
a:string;
ch:char;
x:real;
procedure setnull;
begin
top:=0;
end;
procedure push( var s1:stack;y:real);
begin
if top=100
then writeln('overflow')
Else begin
Top:=top+1;
s1[top]:=y;
end;
end;
function pop(var s2:stack):real;
begin
If top=0 then writeln('underflow')
Else
begin
pop:=s2[top];
top:=top-1;
end;
end;
begin
readln(a);
setnull;
i:=1;
ch:=a[i];
while ch<>'@' do begin
case ch of
'0'..'9': begin
x:=0;
while ch<>' 'do begin
x:=x*10+ord(ch)-ord('0');
i:=i+1;
ch:=a[i]; end;
end;
'+':x:=pop(s)+pop(s);
'-':begin x:=pop(s); x:=pop(s)-x; end;
'*':x:=pop(s)*pop(s);
'/':begin x:=pop(s); x:=pop(s)/x; end;
end;
push(s,x);
i:=i+1;
ch:=a[i];
end;
write(s[1]:0:2);
end.