#include<bits/stdc++.h>
using namespace std;
double d,e,f;
int flag;
string s,t;
int ans,qq,hj;
char ysf,dt;
double yunsuan(double a,double b){
switch (ysf){
case '+':return a+b;break;
case '-':return a-b;break;
case '*':return a*b;break;
case '/':return a/b;break;
default :return 0;
}
}
double nys(double a,double b){
switch (ysf){
case '+':return a-b;break;
case '-':return a+b;break;
case '*':return a/b;break;
case '/':return a*b;break;
default :return 0;
}
}
void ys(){
if(d==-1)d=nys(f,e);
if(e==-1)e=nys(f,d);
if(f==-1)f=yunsuan(d,e);
}
bool pd(char c){
switch (c){
case '+':return 1;break;
case '-':return 1;break;
case '*':return 1;break;
case '/':return 1;break;
default :return 0;
}
}
int main(){
while(cin>>t)s+=t;
int l=s.size();
for(int i=1;i<=l;i++){
if(pd(s[i-1]))ysf=s[i-1],qq=i-1;
if(s[i-1]=='?')ans=i-1;
if(s[i-1]=='=')hj=i-1;
}
for(int j=0;j<qq;j++){
if(s[j]<'0'||s[j]>'9')break;
d=d*10+s[j]-'0';
}
for(int j=qq+1;j<=hj;j++){
if(s[j]<'0'||s[j]>'9')break;
e=e*10+s[j]-'0';
}
for(int j=hj+1;j<l;j++){
if(s[j]<'0'||s[j]>'9')break;
f=f*10+s[j]-'0';
}
if(ans<qq)flag=1,d=-1;
else if(ans>hj)flag=3,f=-1;
else flag=2,e=-1;
ys();
switch(flag){
case 1:printf("%.2lf",d);break;
case 2:printf("%.2lf",e);break;
case 3:printf("%.2lf",f);break;
}
return 0;
}