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