#include<bits/stdc++.h>    using namespace std;   namespace Ruri{       #define ms(a,b) memset(a,b,sizeof(a))       #define repi(i,a,b) for(int i=a,bbb=b;i<=bbb;++i)//attention reg int or reg ll ?       #define repd(i,a,b) for(int i=a,bbb=b;i>=bbb;--i)       #define reps(s) for(int i=head[s],v=e[i].to;i;i=e[i].nxt,v=e[i].to)       #define ce(i,r) i==r?  n :          #define pb push_back        #define all(x) x.begin(),x.end()       #define gmn(a,b) a=min(a,b)       #define gmx(a,b) a=max(a,b)       #define fi first       #define se second                                typedef long long ll;       typedef unsigned long long ull;       typedef double db;       const int infi=1e9;//infi较大，注意涉及inf相加时爆int       const ll infl=4e18;       inline ll ceil_div(ll a,ll b){ return (a+b-1)/b; }       inline ll pos_mod(ll a,ll b){ return (a%b+b)%b; }       //std::mt19937 rnd(time(0));//std::mt19937_64 rnd(time(0));   }   using namespace Ruri;   namespace Read{       #define ss(a) scanf( %s ,a)       inline int ri(){ int x; scanf( %d ,&x); return x; }       inline ll rl(){ ll x;  scanf( %lld ,&x); return x; }       inline db rd(){ db x; scanf( %lf ,&x); return x; }   }   namespace DeBug{       #define pr(x) cout<<#x<< :  <<(x)<<endl       #define pra(x,a,b) cout<<#x<< :  <<endl;                repi(i,a,b) cout<<x[i]<<   ;                    puts(  );          #define FR(a) freopen(a, r ,stdin)       #define FO(a) freopen(a, w ,stdout)   }   using namespace Read;   using namespace DeBug;   const int MAX_N=105;   const int mod=1e9+7;   inline void Add(int &x,int y){ x+=y;if(x>=mod) x-=mod; }   int n,b[MAX_N],c[MAX_N];   int sb[MAX_N];   int f[MAX_N*MAX_N],g[MAX_N*MAX_N];   map<int,int> ans;   int Solve(int x)   {    repi(i,0,10001) g[i]=1;    repi(i,1,n){     int lim=i*x+sb[i];     ms(f,0);     for(int j=max(0,lim);j<=10001;++j) f[j]=(g[j]-(j-c[i]-1>=0?g[j-c[i]-1]:0)+mod)%mod;     ms(g,0),g[0]=f[0];     for(int j=1;j<=10001;++j) g[j]=(1ll*g[j-1]+f[j])%mod;    }    return g[10001];   }   int main()   {    n=ri();    int prod=1;    repi(i,1,n) c[i]=ri(),prod=1ll*prod*(c[i]+1)%mod;    repi(i,1,n-1) b[i]=ri();    repi(i,1,n)repi(j,1,i-1) sb[i]+=(i-j)*b[j];    int l=0,r=infi,mx_c=*max_element(c+1,c+n+1);    repi(i,1,n) gmn(l,-((sb[i]-1)/i+1)),gmn(r,(n*mx_c-sb[i]-1)/i+1);    repi(i,l,r) ans[i]=Solve(i);    int Q=ri();    while(Q--)    {     int x=ri();     if(x>r) puts( 0 );     else if(x<l) printf( %d n ,prod);     else printf( %d n ,ans[x]);    }       return 0;   }   