//====================================================================||
// Name : Evaluating Simple C Expressions.cpp ||
// Date : 2013/6/2 下午9:12:42 ||
// Author : GCA ||
// 6AE7EE02212D47DAD26C32C0FE829006 ||
//====================================================================||
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <climits>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <cctype>
#include <utility>
using namespace std;
#ifdef ONLINE\_JUDGE
#define ll "%lld"
#else
#define ll "%I64d"
#endif
typedef unsigned int uint;
typedef long long int Int;
#define Set(a,s) memset(a,s,sizeof(a))
#define Write(w) freopen(w,"w",stdout)
#define Read(r) freopen(r,"r",stdin)
#define Pln() printf("\\n")
#define I\_de(x,n)for(int i=0;i<n;i++)printf("%d ",x\[i\]);Pln()
#define De(x)printf(#x"%d\\n",x)
#define For(i,x)for(int i=0;i<x;i++)
#define CON(x,y) x##y
#define Pmz(dp,nx,ny)for(int hty=0;hty<ny;hty++){for(int htx=0;htx<nx;htx++){\\
printf("%d ",dp\[htx\]\[hty\]);}Pln();}
#define M 55
#define PII pair<int,int\>
#define PB push\_back
#define oo INT\_MAX
#define Set\_oo 0x3f
#define Is\_debug true
#define debug(...) if(Is\_debug)printf("DEBUG: "),printf(\_\_VA\_ARGS\_\_)
#define FOR(it,c) for(\_\_typeof((c).begin()) it=(c).begin();it!=(c).end();it++)
#define eps 1e-6
bool xdy(double x,double y){return x>y+eps;}
bool xddy(double x,double y){return x>y-eps;}
bool xcy(double x,double y){return x<y-eps;}
bool xcdy(double x,double y){return x<y+eps;}
int min3(int x,int y,int z){
int tmp=min(x,y);
return min(tmp,z);
}
int max3(int x,int y,int z){
int tmp=max(x,y);
return max(tmp,z);
}
struct asc{
int v;
int after;
}asc\[600\];
char str\[1000\];
char ans\[1000\];
int inchar\[1000\];
char str2\[1000\];
int main() {
ios\_base::sync\_with\_stdio(0);
while(gets(str)){
// if(str\[0\]=='')break;
Set(ans,0);
Set(inchar,0);
int len=strlen(str);
strcpy(str2,str);
for(int i=0;i<600;i++){
asc\[i\].after=0;
if(isalpha(i)){
asc\[i\].v=i-'a'+1;
}
}
char now;
int add=0,minus=0;
int k=0;
if(str\[len-1\]=='-')str\[len\]='+';
else if(str\[len-1\]=='+')str\[len\]='-';
len=strlen(str);
for(int i=0;i<len;i++){//debug("%s\\n",ans);
if(isalpha(str\[i\])){
inchar\[(int)str\[i\]\]=1;
if(add==0&&minus==0){
ans\[k++\]=str\[i\];
}else{
if(add==2){
asc\[(int)str\[i\]\].v++;
ans\[k++\]=str\[i\];
}else if(add==1){
ans\[k++\]='+';
ans\[k++\]=str\[i\];
}
if(minus==2){
asc\[(int)str\[i\]\].v--;
ans\[k++\]=str\[i\];
}else if(minus==1){
ans\[k++\]='-';
ans\[k++\]=str\[i\];
}
}
now=str\[i\];
add=0;
minus=0;
}else if(str\[i\]=='-'){
if(add==2){
asc\[(int)now\].after++;
add=0;
}
minus++;
}else if(str\[i\]=='+'){
if(minus==2){
asc\[(int)now\].after--;
minus=0;
}
add++;
}
}
len=strlen(ans);
int ians=0;
int fg=0;
for(int i=0;i<len;i++){
if(i==0&&isalpha(ans\[i\])){
ians=asc\[(int)ans\[i\]\].v;
continue;
}
if(ans\[i\]=='+')fg=1;
else if(ans\[i\]=='-')fg=2;
else if(fg==1){
ians+=asc\[(int)ans\[i\]\].v;
fg=0;
}else if(fg==2){
ians-=asc\[(int)ans\[i\]\].v;
fg=0;
}
}//debug("%s %d\\n",ans,ians);
for(int i=0;i<600;i++){
asc\[i\].v+=asc\[i\].after;
}
printf("Expression: %s\\n value = %d\\n",str2,ians);
for(int i=0;i<600;i++){
if(inchar\[i\]){
printf(" %c = %d\\n",i,asc\[i\].v);
}
}
Set(str,0);
}
}