#include <iostream>
#include <vector>
#include <unordered_set>
using namespace std;
int main() {
int n;
cin >> n;
vector<int> weights(n);
vector<int> nums(n);
for (int& weight : weights) {
cin >> weight;
}
for (int& num : nums) {
cin >> num;
}
unordered_set<int> mark;
mark.insert(0);
int count = 0;
for (int i = 0; i < n; ++i) {
for (int j = 1; j <= nums[i]; ++j) {
unordered_set<int> temp(mark);
for (auto iter = temp.begin(); iter != temp.end();
iter++) //当前集合每个都可以加一次
mark.insert(*iter + weights[i]);
}
}
cout << mark.size() << endl;
return 0;
}
// 64 位输出请用 printf("%lld")