#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 12, Mod = 1e9 + 7;
int n, m, a[30], b[5];
int f[(1 << 24) + 5], mmap[(1 << 24) + 5], num[(1 << 24) + 5];
int main (){
scanf("%d", &n); for(int j = 1; j <= n; j++) {scanf("%d", &a[j]); mmap[(1<<(j-1))] = a[j];}
b[1] = b[2] = -1;
scanf("%d", &m); for(int j = 1; j <= m; j++) scanf("%d", &b[j]);
f[0] = 1;
for(int i = 1; i < (1 << n); i++) {
ll id = i & -i;
ll S = num[i] = num[i ^ id] + mmap[id];
if(S == b[1] || S == b[2]) continue;
for(int j = i; j; j ^= id, id = (j & -j))
f[i] = (f[i] + f[i ^ id]) >= Mod ? (f[i] + f[i ^ id]) - Mod : (f[i] + f[i ^ id]);
}
printf("%d", f[(1 << n) - 1]);
return 0;
}