from itertools import accumulate import bisect N=int(input()) D=list(map(int, input().split())) acc_D = list(accumulate(D)) Q=int(input()) ans = [] for i in range(Q): y, m, d, k = (int(x) for x in input().split()) if k <= D[m-1] - d: ans.append([y, m, d+k]) else: k -= D[m-1]-d left = acc_D[N-1] - acc_D[m-1] m += 1 if k <= left: k += acc_D[m-2] idx = bisect.bisect_left(acc_D, k) m = idx+1 if 0 <= idx-1: k -= acc_D[idx-1] ans.append([y, m, k]) else: y += 1 k -= left y += k//acc_D[-1] k %= acc_D[-1] idx = bisect.bisect_left(acc_D, k) m = idx + 1 if 0 <= idx-1: k -= acc_D[idx-1] ans.append([y, m, k]) for i in ans: print(*i)