#include using namespace std; #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define rep2(i,s,n) for (int i=(s); i<(int)(n); i++) #define all(v) v.begin(),v.end() using ll=long long; using vi=vector; using vvi=vector; using vvvi=vector; using vs=vector; using vl=vector; using vvl=vector; using vvvl=vector; using vb=vector; using vvb=vector; using pi=pair; using pl=pair; using si=set; using sl=set; using ss=set; using svi=set; using svl=set; using svs=set; using sb=set; using vpi=vector; using vpl=vector; using spi=set; using spl=set; const int dx[4]={0,1,0,-1}; const int dy[4]={1,0,-1,0}; template using pq=priority_queue; int f(int a){ return a*a*a-a*a+a+1; } bool isprime(int a){ for(int i=2;i*i<=a;i++){ if(a%i==0)return false; } return true; } int main() { int n; cin>>n; vl D(n); rep(i,n)cin>>D[i]; ll aty=0; rep(i,n)aty+=D[i]; vl sum=D; rep2(i,1,n){ sum[i]+=sum[i-1]; } int q; cin>>q; while(q--){ ll y,m,d,k; cin>>y>>m>>d>>k; y+=k/aty; k%=aty; ll ds=(m>1?sum[m-2]:0)+d; if(k>aty-ds){ y++; ds=ds-aty+k; }else{ ds+=k; } auto l=lower_bound(all(sum),ds); m=l-sum.begin()+1; d=ds-*(l)+D[l-sum.begin()]; cout<