//这样做输出总是0, 不知道为什么
#include<bits/stdc++.h>
using namespace std;
int jia(double a,double b)
{
double t;
t=a+b;
return t;
}
int jian(double a,double b)
{
double t;
t=a-b;
return t;
}
int cheng(double a,double b)
{
double t;
t=a*b;
return t;
}
int chu(double a,double b)
{
double t;
t=a/b;
return t;
}
int power(double a,double b)
{
double t;
t=pow(a,b);
return t;
}//待定
int pan(char s3)
{
int ans;
if(s3=='+') ans=1;
if(s3=='-') ans=2;
if(s3=='*') ans=3;
if(s3=='/') ans=4;
return ans;
}
int diaoyong(int flag2,double f1,double f2)
{
int ans;
if(flag2==1) ans=jia(f1,f2);
if(flag2==2) ans=jian(f1,f2);
if(flag2==3) ans=cheng(f1,f2);
if(flag2==4) ans=chu(f1,f2);
if(flag2==5) ans=power(f1,f2);
return ans;
}
int main()
{
char s3;
char z1[10],z2[10];
string s,s1,s2;//s为总输入 s1为第一组数 s2为第二组数 s3为运算符号
cin>>s;
string sx=s;
int flag=0;//判断上一位是否是数字,0代表是数字
int flag1=0;//判断是第一组数还是第二组数
int flag2;//表示运算符号
int ans=0;//ans 代表了for循环内数字位数
int ans1=1;//ans1 代表了该组数字起始位置
double f1,f2;//表示第一组数与第二组数
for(int i=1;i<=s.length();i++)
{
if(flag==0&&s[i]<='9'&&s[i]>='0'||ans1==1||s[i]=='.')
{
ans++;
if(flag1==0)
{
s1=s.substr(ans1,ans);
}
else
{
s2=s.substr(ans1,ans);
}
}
else if(s[i]<='9'&&s[i]>='0')
{
ans1=i;
ans++;
if(flag1==0)
{
s1=s.substr(ans1,ans);
}
else
{
s2=s.substr(ans1,ans);
}
}
else
{
ans=0;
flag=1;
s3=s[i];
flag2=pan(s3);
f1=0;
f2=0;
if(flag1==1)
{
//f1=atof(s1);
//f2=atof(s2);
s1.copy(z1,s1.length(),0);
s2.copy(z2,s2.length(),0);
for(int i=0;i<s1.length();i++)
{
f1=f1*10+int(z1[i])-'0';
}
for(int i=0;i<s2.length();i++)
{
f2=f2*10+int(z2[i])-'0';
}
f1=diaoyong(flag2,f1,f2);
}
}
}
//f1=atof(s1);
//f2=atof(s2);
s1.copy(z1,s1.length(),0);
s2.copy(z2,s2.length(),0);
for(int i=0;i<s1.length();i++)
{
f1=f1*10+int(z1[i])-'0';
}
for(int i=0;i<s2.length();i++)
{
f2=f2*10+int(z2[i])-'0';
}
f1=diaoyong(flag2,f1,f2);
printf("%d",f1);
return 0;
}