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