#include #include #include #include #include #include using namespace atcoder; using namespace std; using ll = long long; using ull = unsigned long long; template using max_heap = priority_queue; template using min_heap = priority_queue, greater<>>; ll ll_min = numeric_limits::min(); ll ll_max = numeric_limits::max(); ll ALPHABET_N = 26; // using mint = modint998244353; // using mint = modint1000000007; #define rep(i, n) for (ll i = (ll)0; i < (ll)n; i++) #define rep_(i, k, n) for (ll i = (ll)k; i < (ll)n; i++) #define all(a) a.begin(), a.end() using i128 = __int128_t; int main() { ll n; cin >> n; vector D(n); rep(i, n) cin >> D[i]; vector acc(n + 1); rep(i, n) acc[i + 1] = acc[i] + D[i]; ll q; cin >> q; i128 ysum = acc.back(); rep(i, q) { ll y, m, d, k; cin >> y >> m >> d >> k; i128 d_sum = (i128)ysum * (i128)(y - 1) + (i128)acc[m - 1] + (i128)(d - 1) + k; ll y_ = d_sum / ysum + 1; d_sum %= ysum; auto it = upper_bound(all(acc), d_sum); it--; ll m_ = it - acc.begin() + 1; d_sum -= *it; ll d_ = d_sum + 1; cout << y_ << " " << m_ << " " << d_ << endl; } return 0; }