# 从用户输入获取矩阵链的长度  
n = int(input())  
  
# 初始化一个空列表,用于存储矩阵的尺寸  
abs = []  
  
# 通过循环读取每个矩阵的尺寸  
for i in range(n):  
    a, b = list(map(int, input().split()))  
    # 将每个矩阵的尺寸添加到列表中  
    abs = abs + [(a, b)]  
  
# 从用户输入获取一个字符串,表示矩阵链的乘法顺序  
str1 = input()  
  
# 初始化一个临时变量,用于存储当前处理的矩阵的尺寸  
tmp_z = (0, 0)  
  
# 初始化计数器,用于计算总的乘法次数  
count = 0  
  
# 初始化一个栈,用于存储处理过程中的矩阵尺寸  
stack = []  
  
# 遍历输入的字符串,处理矩阵链的乘法  
for i in str1:  
    # 如果遇到左括号,忽略它  
    if i == '(':  
        continue  
    # 如果遇到右括号,执行矩阵乘法  
    elif i == ')':  
        # 弹出栈顶的两个矩阵尺寸  
        tmp_y = stack.pop()  
        tmp_x = stack.pop()  
        # 计算这两个矩阵乘法的乘法次数,并累加到计数器中  
        count += tmp_x[0]*tmp_x[1]*tmp_y[1]  
        # 将乘法结果的新矩阵尺寸压入栈中  
        stack.append((tmp_x[0], tmp_y[1]))  
    # 如果遇到的不是括号,表示是一个矩阵,将其尺寸从列表中取出并压入栈中  
    else:  
        stack.append(abs.pop(0))  
  
# 输出总的乘法次数  
print(count)