#include<bits/stdc++.h>
using namespace std;
double t=1,l;
double x=-1,y=-1,z=-1;
stack<int> a,b,c;
double jia(int x,int y,int z){
if(x==-1){
return z-y;
}
if(y==-1){
return z-x;
}
else{
return x+y;
}
}
double jian(int x,int y,int z){
if(x==-1)
return z+y;
if(y==-1)
return x-z;
else
return x-y;
}
double chen(long long x,long long y,long z){
if(x==-1){
return z/y;
}
if(y==-1){
return z/x;
}
if(z==-1)
return x*y;
}
double chu(double x,double y,double z){
if(x==-1)
return z*y;
if(y==-1){
return x/z;
}
if(z==-1)
return x/y;
}
int main(){
string s;
getline(cin,s);
int len=s.size();
for(int i=0;i<len;){
if(s[i]==' '){
s.erase(i,1);
}
else{
i++;
}
}
for(int i=0;i<s.size();i++){
if(s[i]>='0'&&s[i]<='9'){
if(t==1){
int k=i;
t++;
a.push(s[k]-'0');
while(s[k+1]>='0'&&s[k+1]<='9'){
k++;
int l=s[k]-'0';
a.push(l);
}
}
else if(t==2){
int k=i;
t++;
b.push(s[k]-'0');
while(s[k+1]>='0'&&s[k+1]<='9'){
k++;
int l=s[k]-'0';
b.push(l);
}
}
else if(t==3){
int k=i;
t++;
c.push(s[k]-'0');
while(s[k+1]>='0'&&s[k+1]<='9'){
k++;
int l=s[k]-'0';
c.push(l);
}
}
}
else if(s[i]=='?'){
t++;
}
}
if(!a.empty()){
x=a.top();
a.pop();
for(long long i=10;!a.empty();i*=10){
x+=a.top()*i;
a.pop();
}
}
if(!b.empty()){
y=b.top();
b.pop();
for(long long i=10;!b.empty();i*=10){
y+=b.top()*i;
b.pop();
}
}
if(!c.empty()){
z=c.top();
c.pop();
for(long long i=10;!c.empty();i*=10){
z+=c.top()*i;
c.pop();
}
}
if(s[1]=='+')
printf("%.2lf",jia(x,y,z));
else if(s[1]=='-'){
printf("%.2lf",jian(x,y,z));
}
else if(s[1]=='*'){
printf("%.2lf",chen(x,y,z));
}
else
printf("%.2lf",chu(x,y,z));
}