#ifdef NACHIA #define _GLIBCXX_DEBUG #else // disable assert #define NDEBUG #endif #include #include #include #include using namespace std; using ll = long long; const ll INF = 1ll << 60; #define REP(i,n) for(ll i=0; i using V = vector; template void chmax(A& l, const B& r){ if(l < r) l = r; } template void chmin(A& l, const B& r){ if(r < l) l = r; } void testcase(){ ll K, N; cin >> K>> N; V A(K+1); REP(i,K){ ll d; cin >> d; A[i+1] = A[i] + d; } REP(i,K){ ll l = -INF; if(i) l = (A[i] - 1) / N * N; if(l < i) l = -INF; ll r = INF; r = (A[i+1] + N - 1) / N * N; // cout << "l = " << l << " , r = " << r << endl; if(r > A[K] - (K - i)) r = INF; ll ans = min(A[i] - l, r + 1 - A[i+1]); if(ans > INF / 2) ans = -1; cout << ans << "\n"; } } int main(){ cin.tie(0)->sync_with_stdio(0); testcase(); return 0; }