import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
// while (in.hasNextInt()) { // 注意 while 处理多个 case
// int a = in.nextInt();
// int b = in.nextInt();
// System.out.println(a + b);
// }
int n = in.nextInt();
int[] mn = new int[n];
int[] xn = new int[n];
int num = 0;
int max = 0;
while (in.hasNextInt()) {
for (int i = 0; i < n; i++) {
mn[i] = in.nextInt();
}
for (int i = 0; i < n; i++) {
xn[i] = in.nextInt();
num = num + xn[i];
}
}
int[] mx = new int[num];
int index = 0;
for (int i = 0; i < n; i++) {
max = max + mn[i] * xn[i];
for (int j = 0; j < xn[i]; j++) {
mx[index] = mn[i];
index++;
}
}
boolean[][] dp = new boolean[num + 1][max + 1];
for (int i = 0; i <= num; i++) {
dp[i][0] = true;
}
HashSet<Integer> ws = new HashSet<>();
ws.add(0);
for (int i = 1; i <= num; i++) {
int w = mx[i - 1];
for (int j = 1; j <= max; j++) {
dp[i][j] = dp[i - 1][j];
if (j - w < 0) {
continue;
}
dp[i][j] = dp[i - 1][j - w] || dp[i - 1][j];
if (dp[i][j]) {
ws.add(j);
}
}
}
System.out.print(ws.size());
}
}