public class Main {
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        while(sc.hasNext()){
            int n=sc.nextInt();
            int[] m=new int[n];
            int[] x=new int[n];
            for(int i=0;i<n;i++){
                m[i]=sc.nextInt();
            }
            for(int i=0;i<n;i++){
                x[i]=sc.nextInt();
            }
            HashSet<Integer> count=new HashSet<>();
            HashSet<Integer> cur=new HashSet<>();
            count.add(0);
            //对砝码按种类遍历,每种都有0-xi个数供选择
            for(int i=0;i<n;i++){
                //当前质量砝码个数遍历
                for(int j=0;j<=x[i];j++){
//                     if(count)
                    //对已经保存的质量分别加上当前j数量的砝码i得到新的质量,并添加当前新生成的质量集合cur
                    for(int mass:count){
                        cur.add(j*m[i]+mass);
                    }                    
                }
                //把当前新生成质量cur加入到count中,得到前i种砝码可获得的全部质量
                for(int mass:cur){
                    count.add(mass);
                }
                //清楚当前cur质量集合
                cur.clear();
            }
            System.out.print(count.size());
            
        }
    }
}