#include<iostream>#include<stack>#include<string>using namespace std;struct Matrix{char name;int row;int column;};int main(){stack<Matrix> sk;int i,n,j,result;Matrix M[26],a,b,temp;string s;bool flag;while(cin>>n){for(i=0;i<n;i++)cin>>M[i].name>>M[i].row>>M[i].column;while(cin>>s){result=0;i=0;flag=true;while(s[i]!=' '){if(s[i]!='('){if(s[i]>='A'&&s[i]<='Z'){for(j=0;j<n;j++){if(M[j].name==s[i]){sk.push(M[j]);break;}}}else{if(s[i]==')'){b=sk.top();sk.pop();a=sk.top();sk.pop();if(a.column==b.row) {temp.name='M';temp.row=a.row;temp.column=b.column;sk.push(temp); result+=a.row*a.column*b.column; }else {cout<<"error"<<endl;flag=false;break;}}}}i++;}while(!sk.empty())sk.pop();if(flag)cout<<result<<endl;}}return 0;}


