#include<iostream>
#include<algorithm>
#include<sstream>
using namespace std;
double xl,xr,nl,nr;
string s,g;
int s2i(string s)
{
stringstream ss;
ss<<s;
int i;
ss>>i;
return i;
}
int main()
{
cin>>s;
string sl=s.substr(0,s.find('=')),sr=s.substr(s.find('=')+1);
char c='_';
string lb[1005]={""},rb[1005]={""};
int k=0,lcnt=0,rcnt=0;
while(sl.find('+',1)!=string::npos || sl.find('-',1)!=string::npos)
{
if(sl.find('+',1)!=string::npos && sl.find('-',1)!=string::npos)
k=min(sl.find('+',1),sl.find('-',1));
else if(sl.find('+',1)!=string::npos)
k=sl.find('+',1);
else
k=sl.find('-',1);
lb[++lcnt]=sl.substr(0,k);
sl=sl.substr(k);
if(lb[lcnt][0]!='+' && lb[lcnt][0]!='-')
lb[lcnt]='+'+lb[lcnt];
if(lb[lcnt][lb[lcnt].size()-1]<='z' && lb[lcnt][lb[lcnt].size()-1]>='a')
{
c=lb[lcnt][lb[lcnt].size()-1];
if(lb[lcnt][0]=='+')
{
g=lb[lcnt].substr(1,lb[lcnt].size()-2);
xl+=s2i(g);
}
else
{
g=lb[lcnt].substr(1,lb[lcnt].size()-2);
xl-=s2i(g);
}
}
else
{
if(lb[lcnt][0]=='+')
{
g=lb[lcnt].substr(1,lb[lcnt].size()-1);
nl+=s2i(g);
}
else
{
g=lb[lcnt].substr(1,lb[lcnt].size()-1);
nl-=s2i(g);
}
}
}
while(sr.find('+',1)!=string::npos || sr.find('-',1)!=string::npos)
{
if(sr.find('+',1)!=string::npos && sr.find('-',1)!=string::npos)
k=min(sr.find('+',1),sr.find('-',1));
else if(sr.find('+',1)!=string::npos)
k=sr.find('+',1);
else
k=sr.find('-',1);
rb[++rcnt]=sr.substr(0,k);
sr=sr.substr(k);
if(rb[rcnt][0]!='+' && rb[rcnt][0]!='-')
rb[rcnt]='+'+rb[rcnt];
if(rb[rcnt][rb[rcnt].size()-1]<='z' && rb[rcnt][rb[rcnt].size()-1]>='a')
{
c=rb[rcnt][rb[rcnt].size()-1];
if(rb[rcnt][0]=='+')
{
g=rb[rcnt].substr(1,rb[rcnt].size()-2);
xr+=s2i(g);
}
else
{
g=rb[rcnt].substr(1,rb[rcnt].size()-2);
xr-=s2i(g);
}
}
else
{
if(rb[rcnt][0]=='+')
{
g=rb[rcnt].substr(1,rb[rcnt].size()-1);
nr+=s2i(g);
}
else
{
g=rb[rcnt].substr(1,rb[rcnt].size()-1);
nr-=s2i(g);
}
}
}
double x=(nr-nl)/(xl-xr);
cout<<c<<'=';
printf("%.3lf",x);
return 0;
}