RT
#include <bits/stdc++.h>
using namespace std;
int n, m, f, l, r, mid, ans, tmp;
int a[1025], b[1025], sum[1025];
bool check(int now, int l)
{
if (f - tmp < sum[mid])
return 0;
if (now == 0)
return 1;
bool s;
for (int i = 1; i <= m; i++)
{
if (a[i] >= b[now])
{
a[i] -= b[now];
if (a[i] < b[1])
tmp += a[i];
if (b[now - 1] == b[now])
s = check(now - 1, i);
else
s = check(now - 1, 1);
if (a[i] < b[1])
tmp -= a[i];
a[i] += b[now];
if (s)
return 1;
}
}
return 0;
}
int main()
{
cin >> m;
for (int i = 1; i <= m; i++)
cin >> a[i], f += a[i];
cin >> n;
for (int i = 1; i <= n; i++)
cin >> b[i];
sort(b + 1, b + n + 1);
for (int i = 1; i <= n; i++)
sum[i] = sum[i - 1] + b[i];
while (sum[n] > f && n)
n--;
l = 1, r = n;
while (l <= r)
{
mid = (l + r) >> 1;
if (check(mid, 1))
ans = mid, l = mid + 1;
else
r = mid - 1;
}
cout << ans;
return 0;
}