#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;
long long dp[101][10010], dp2[10010];
int a[101], b[101];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d", a + i);
  }
  for (int i = 0; i < n - 1; i++) {
    scanf("%d", b + i);
  }
  int q, x, X;
  scanf("%d %d", &q, &x);
  X = x;
  long long S = x;
  for (int i = 0; i < n - 1; i++) {
    x += b[i];
    S += x;
  }
  dp[n][0] = 1;
  for (int i = n - 1; i > 0; i--) {
    long long cur = dp[i + 1][0];
    for (int j = 0; j < 10010; j++) {
      dp[i][j] = cur;
      cur += dp[i + 1][j + 1];
      if (j >= a[i]) cur -= dp[i + 1][j - a[i]];
      cur %= MOD;
      if (cur < 0) cur += MOD;
    }
  }
  dp2[0] = dp[1][0];
  for (int i = 1; i < 10010; i++) dp2[i] = (dp2[i - 1] + dp[1][i]) % MOD;
  long long ans = 0;
  for (int i = max(X, 0); i <= a[0]; i++) {
    if (S - i > 10009) continue;
    ans += dp2[10009];
    if (S - i > 0) ans -= dp2[S - i - 1];
    if (ans > MOD) ans -= MOD;
  }
  printf("%lld\n", ans);
  return 0;
}
