#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;
}