#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")