from itertools import accumulate INF = 10**18 from bisect import bisect_left, bisect_right N = int(input()) D = list(map(int, input().split())) rD = list(accumulate(D, initial=0)) Y = sum(D) Q = int(input()) def f(m, d): return rD[m - 1] + d def num_ika(li, x): # x 以下の最大値(なければ -inf) res = bisect_right(li, x) - 1 return -INF if res == -1 else li[res] ansl = [] for i in range(Q): y, m, d, k = map(int, input().split()) k -= 1 k += f(m, d) # y年1月1日 の k日後 sho, amari = divmod(k, Y) ans_y = y + sho # 年始から amari 日後 ans_m = bisect_right(rD, amari) ans_d = amari - rD[ans_m - 1] + 1 ansl.append((ans_y, ans_m, ans_d)) for a in ansl: print(*a)