import java.util.Scanner;
import java.util.Stack;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) { // 注意 while 处理多个 case0. 
            int n = in.nextInt();
            int [][] arr = new int[n][2];
            for(int i=0;i<n;i++){
                arr[i][0] = in.nextInt();
                arr[i][1] = in.nextInt();
            }
            String type = in.next();
            System.out.println(getCount(n,arr,type));
        }
    }
    private static int getCount(int i,int[][] b,String type){
       // System.out.println(i+"===="+b.length+"===="+type.length());
        int sum = 0;
        char [] cs = type.toCharArray();
        Stack<Integer> st = new Stack<Integer>();

        for(int j=type.length()-1,k=i-1;j>=0;j--){
            if(cs[j]!='(' && cs[j]!=')'){
                st.push(b[k][1]);
                st.push(b[k][0]);
                //System.out.println(b[k][1]+"====="+cs[j]+"========"+b[k][0]);
                k--;
            }else if(cs[j]=='('){
                //从右向遍历遇到左括号,出栈,计算后把新矩阵入栈,其实可以可以从左到右遇到右括号的话,出栈计算
                int a0=st.pop(),a1=st.pop(),a2=st.pop(),a3=st.pop(); 
                sum += a0*a1*a3;
                //System.out.println(a0+"*"+a1+"*"+a3);
                st.push(a3);
                st.push(a0);
            }           
        }
        return sum;
    }
}

}