2WA
#include<bits/stdc++.h>
#define rll register ll
#define inf 0x3f3f3f3f
#define MAXN 100001
#define max(a,b) a>b?a:b
#define min(a,b) a<b?a:b
#define ll long long
using namespace std;
inline ll read(){
ll res=0,fs=1;
char c=getchar();
while(!(c>='0' && c<='9')){
if(c=='-')fs=-1;
c=getchar();
}
while(c>='0' && c<='9')res=res*10+c-'0',c=getchar();
return res*fs;
}
map<string,ll> mp;
stack<ll> st;
signed main() {
string s;
ll num;
while(1){
cin>>s;
if(s=="END_OF_FIRST_PART")break;
cin>>num;
mp[s]=num;
}
while(1){
cin>>s;
if(s=="0")break;
s+=' ';
string ts="";
ll tn=0,ans=0,tt=0;
bool IsKnown=1;
for(rll i=0;i<s.size();i++){
if(!st.empty())tt=st.top();
if(s[i]>='a' && s[i]<='z' || s[i]>='A' && s[i]<='Z'){
ts+=s[i];
if(!(s[i+1]>='a' && s[i+1]<='z')){
if(mp[ts]!=0)st.push(mp[ts]);
else {
IsKnown=0;
break;
}
ts="";
}
}
if(!st.empty())tt=st.top();
if(s[i]>='0' && s[i]<='9'){
tn=tn*10+s[i]-'0';
if(!(s[i+1]>='0' && s[i+1]<='9')){
ll tmp=st.top();
st.pop();
st.push(tmp*tn);
tn=0;
}
}
if(!st.empty())tt=st.top();
if(s[i]=='('){
st.push(-1);
}
if(s[i]==')'){
ll sum=0;
while(st.top()!=-1){
sum+=st.top();
st.pop();
}
st.pop();
st.push(sum);
}
if(!st.empty())tt=st.top();
}
if(!IsKnown){
cout<<"UNKNOWN"<<'\n';
continue;
}
while(!st.empty()){
ans+=st.top();
st.pop();
}
cout<<ans<<'\n';
}
return 0;
}