#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9 + 7;
long long dp[1 << 24], sum[1 << 24];
int n, k, cant[10], num[24];
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) cin >> num[i];
  cin >> k;
  for (int i = 0; i < k; i++) cin >> cant[i];
  dp[0] = 1;
  for (int msk = 1; msk < (1 << n); msk++) {
    int j = __builtin_ctz(msk);
    sum[msk] = sum[1 << j ^ msk] + num[j];
    bool flag = 0;
    for (int i = 0; i < k; i++)
      if (cant[i] == sum[msk]) {
        flag = 1;
      }
    if (flag) continue;
    for (int i = 0; i < n; i++)
      if (1 << i & msk) dp[msk] += dp[1 << i ^ msk];
    dp[msk] %= mod;
  }
  cout << dp[(1 << n) - 1] << endl;
}
