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());
}
}
}