def cal_val(A,B):
if A[1]==B[0]:
return A[0]*B[1]*A[1]
else:
return -1
def cal(A,B):
if A[1]==B[0]:
return [A[0],B[1]]
else:
return -1
while True:
try:
n=int(input())
array=[]
for i in range(n):
matrix=list(map(int,input().split()))
array.append(matrix)
array=array[::-1]
express=str(input().strip())
stack=[]
cal_value=0
for i in range(len(express)):
if express[i].isalpha():
stack.append(array.pop())
elif express[i]==')':
if len(stack)>1:
A=stack.pop()
B=stack.pop()
#print('A,B:',A,B)
cal_value+=cal_val(B,A)
stack.append(cal(B,A))
stack=stack[::-1]
while len(stack)>1:
A=stack.pop()
B=stack.pop()
cal_value+=cal_val(A,B)
stack.append(cal(A,B))
print(cal_value)
except:
break