#include<bits/stdc++.h>
using namespace std;
int n,m,s[9999],l,p;
struct asdf{
int a[999];
}q;
void qw(asdf f,int d,int g){
if(d>m){
l=m;
p=1;
return;
}
for(int i=1;i<=n;i++){
if(f.a[i]-s[d]>=0){
f.a[i]-=s[d];
qw(f,d+1,g+1);
if(p){
return;
}
f.a[i]+=s[d];
}
}
l=max(l,g);
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%d",&q.a[i]);
}
scanf("%d",&m);
sort(q.a+1,q.a+n+1);
int i=0;
while(i<m){
int x;
scanf("%d",&x);
if(x<=q.a[n]){
s[++i]=x;
}
else{
m--;
}
}
sort(s+1,s+m+1);
qw(q,1,0);
printf("%d",l);
return 0;
}