// simpleCount.cpp : 定义控制台应用程序的入口点。
//
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//#include <iostream>
#define MAX_INPUT_SIZE 256
#define JIA '+'
#define CHEN '*'
char input[MAX_INPUT_SIZE] = {0};
void myStrcpy(char *dst,const char *sorce,int sizeToCpy)
{
if(-1 == sizeToCpy)
{
strcpy(dst,sorce);
}
else
{
for(int i = 0;i < sizeToCpy;++ i)
{
*(dst + i) = *(sorce + i);
}
}
}
void getInput()
{
scanf("%s",input);
}
int firstJiaPos(const char* t,int nlength)
{
int i;
for(i = 0;i < nlength && JIA != *(t + i);++ i);
return nlength == i ? -1 : i;
}
bool onlyContainJia(const char *t,int nlength)
{
bool onlyContainJia = true;
for(int i = 0;i < nlength;++ i)
{
if(CHEN == *(t + i))
{
onlyContainJia = false;
break;
}
}
return onlyContainJia;
}
bool onlyContianChen(const char *t,int nlength)
{
bool onlyContainChen = true;
for(int i = 0;i < nlength;++ i)
{
if(JIA == *(t + i))
{
onlyContainChen = false;
break;
}
}
return onlyContainChen;
}
long long countJia(const char *t,int nlength)
{
long long result_ = 0;
int lastJia = -1;
char num[10] = {0};
bool foundJia = false;
int i;
for(i = 0;i < nlength;++ i)
{
if(JIA == *(t + i))
{
foundJia = true;
myStrcpy(num,t + lastJia + 1,i - lastJia - 1);
result_ += atoi(num);
lastJia = i;
}
}
myStrcpy(num,t + lastJia + 1,i - lastJia - 1);
result_ += atoi(num);
/* if(false == foundJia)
{
myStrcpy(num,t,nlength);
result_ += atoi(num);
}
*/
return result_;
}
long long countChen(const char *t,int nlength)
{
long long result_ = 1;
int lastChen = -1;
char num[10] = {0};
bool foundChen = false;
int i ;
for(i = 0;i < nlength;++ i)
{
if(CHEN == *(t + i))
{
foundChen = true;
myStrcpy(num,t + lastChen + 1,i - lastChen - 1);
result_ *= atoi(num);
lastChen = i;
}
}
//last one
myStrcpy(num,t + lastChen + 1,i - lastChen - 1);
result_ *= atoi(num);
return result_;
}
long long count(const char *t,int nlength)
{
long long result_ = 0;
int jiaPos = firstJiaPos(t,nlength);
if(-1 != jiaPos)
{
// left
if(onlyContainJia(t,jiaPos))
{
result_ += countJia(t,jiaPos);
}
else if(onlyContianChen(t,jiaPos))
{
result_ += countChen(t,jiaPos);
}
else
{
result_ += count(t,jiaPos);
}
//right
if(onlyContainJia(t + jiaPos + 1,nlength - jiaPos - 1))
{
result_ += countJia(t + jiaPos + 1,nlength - jiaPos - 1);
}
else if(onlyContianChen(t + jiaPos + 1,nlength - jiaPos - 1))
{
result_ += countChen(t + jiaPos + 1,nlength - jiaPos - 1);
}
else
{
result_ += count(t + jiaPos + 1,nlength - jiaPos - 1);
}
}
else
{
result_ += countChen(t,nlength);
}
return result_;
}
int main()
{
getInput();
long long result_ = count(input,strlen(input));
printf("%lld",result_);
return 0;
}