while True:
try:
n=int(input())
dic={}
for i in range(n):
dic[chr(ord('A')+i)]=list(map(int,input().strip().split())) # 用strip()先去掉可能隐藏的末尾空格。再split(),防止map不过去
s=input() # 输入要计算的法则
result=0
stack=[]
for j in s:
if j != ')': # 不遇到')'就一直压栈
stack.append(j)
else: # 直接遇到')',把前两个弹出来计算乘法运算量
C=stack.pop()
B=stack.pop()
stack.pop() # 弹掉前括号'('
result+=dic[B][0]*dic[B][1]*dic[C][1]
dic[B]=[dic[B][0],dic[C][1]] # 把当前乘积的结果存储起来
stack.append(B) # 把当前乘积结果入栈
# 因为有最外圈括号,弹完所有')'即完成整个算式的结果
print(result)
except:
break