#include <iostream>
#include <vector>
#include<map>
#include <algorithm>
#include<math.h>
#include<set>
using namespace std;
int n;
set<int> solution;
vector<int> m;
vector<int> num;
void backtrack(int t,int w) {
if (t == n) {
solution.insert(w);
return;
}
for (int i = 0; i <= num[t]; i++) {
w += m[t]*i;
backtrack(t + 1, w);
w -= m[t] * i;
}
}
int main() {
cin >> n;
for (int i = 0; i < n; i++) {
int t;
cin >> t;
m.push_back(t);
}
for (int i = 0; i < n; i++) {
int t;
cin >> t;
num.push_back(t);
}
backtrack(0, 0);
cout << solution.size();
return 0;
}