#include <bits/stdc++.h>
using namespace std;
using vi = vector<int>;
using vvi = vector<vi>;
#define all(x) (x).begin(), (x).end()
#define rep(i, a, b) for (int i = a; i < b; i++)
#define rev(i, a, b) for (int i = a; i >= b; i--)
template<class T> bool chmin(T& a, const T& b) {return b < a ? a = b, 1 : 0;}
template<class T> bool chmax(T& a, const T& b) {return a < b ? a = b, 1 : 0;}
int main() {
cin.tie(0)->sync_with_stdio(0);
int L; cin >> L;
vector<int> c(L); rep(i, 0, L) cin >> c[i];
int n; cin >> n;
vi x(n); for (auto &u : x) cin >> u;
int ans = -1e9;
for (int mask = 0; mask < 1<<n; mask++) {
vi usage(L); bool ok = true;
rep(i, 0, n) {
if (mask & 1<<i) {
if (usage[x[i]] >= c[x[i]] && usage[x[i]-1] < c[x[i]-1]) ok = false;
usage[x[i]]++;
} else {
if (usage[x[i]-1] >= c[x[i]-1] && usage[x[i]] < c[x[i]]) ok = false;
usage[x[i]-1]++;
}
}
if (!ok) continue;
int r = 0; rep(i, 0, L) r += max(0, usage[i] - c[i]);
ans = max(ans, r);
}
cout << ans << "\n";
}