#include<bits/stdc++.h>
using namespace std;
bool cmd(int a,int b){
return a>b;
}
int zui=-1;int a[60],b[1034],i,n,m,i2,ji[1034];
//void dfs(int start,int ge,int zuida){
// int a1=a[ge];
// for(int i=start;i<=m;i++){
// a1-=a[i];
// if(a1<=0){
// if(ge==n)
// zui=max(zui,zuida);
// else
// dfs(i-(1-a1/a[i]),ge+1,zuida);
// }
// zuida++;
// }
//}
int dfs(int start,int sheng){
if(start>m) return 0;
if(b[start]>sheng) return 0;
int zuida=0;
for(int i=start+1;i<=m;i++){
if(!ji[i]){
ji[i]=1;
zuida+=dfs(i,sheng-a[i]);
ji[i]=0;
}
}
return zuida;
}
int main(){
int big;
cin>>n;
for(i=1,big=-1;i<=n;i++) cin>>a[i],big=max(big,a[i]);
cin>>m;
for(i=1;i<=m;i++) cin>>b[i];
// sort(a+1,a+n+1,cmd);
sort(b+1,b+m+1,cmd);
for(i=m;i!=0;i--) if(b[i]<=big) break;
m=i;
for(i=1;i<=n;i++){
zui=max(zui,dfs(1,a[i]));
}
cout<<zui;
return 0;
}