#include<bits/stdc++.h>
using namespace std;
size_t cur;
string s;
double ans, f1, f2;
bool bl;
int num;
double get_wrd(){
switch(s[cur]){
case 'A':{
switch(s[++cur]){
case 'l':
return 27;
case 'g':
return 108;
case 'u':
return 137;
}
}case 'B':{
switch(s[++cur]){
case 'a':
return 137;
case 'k':
return 247;
default:{
--cur;
return 11;
}
}
}case 'C':{
switch(s[++cur]){
case 'a':
return 40;
case 'l':
return 35.5;
case 'u':
return 64;
default:{
--cur;
return 12;
}
}
}case 'F':{
switch(s[++cur]){
case 'e':
return 56;
default:{
--cur;
return 19;
}
}
}case 'H':{
switch(s[++cur]){
case 'f':
return 178.5;
case 'g':
return 201;
default:{
--cur;
return 1;
}
}
}case 'I':
return 127;
case 'K':
return 39;
case 'M':{
switch(s[++cur]){
case 'g':
return 24;
case 'n':
return 55;
}
}case 'N':{
switch(s[++cur]){
case 'a':
return 23;
default:{
--cur;
return 14;
}
}
}case 'O':
return 16;
case 'P':{
switch(s[++cur]){
case 't':
return 195;
default:{
--cur;
return 31;
}
}
}case 'S':{
switch(s[++cur]){
case 'b':
return 122;
case 'i':
return 28;
default:{
--cur;
return 32;
}
}
}case 'Z':{
++cur;
return 65;
}
}return 0;
}int get_num(){
int ans = 0;
for(; isdigit(s[cur]) and cur < s.size(); ++cur)
(ans *= 10) += s[cur] - '0';
return ans;
}signed main(){
cin >> s;
while(cur < s.size()){
switch(s[cur]){
case '(':{
bl = 1;
++cur;
f2 = 0;
break;
}case ')':{
switch(s[++cur]){
case '_':{
cur += 2;
num = get_num();
++cur;
break;
}default:
num = 1;
}ans += num * f2;
bl = 0;
break;
}case '~':{
if(isdigit(s[++cur]))
ans += 18 * get_num();
else
ans += 18;
cout << ans;
return 0;
}default:{
if(isalpha(s[cur])){
f1 = get_wrd();
switch(s[++cur]){
case '_':{
cur += 2;
num = get_num();
++cur;
break;
}default:
num = 1;
}if(bl)
f2 += f1 * num;
else
ans += f1 * num;
}
}
}
}cout << ans;
return 0;
}