#include using namespace std; #include using namespace atcoder; using ll = int64_t; using ul = uint64_t; using ld = long double; using vi = vector; using vc = vector; using vs = vector; using vb = vector; using vl = vector; using vvi = vector; using vvc = vector; using vvb = vector; using vvl = vector; using mint = modint998244353; using vm = vector; int main() { ll K,N; cin >> K >> N; vl D(K); ll sum = 0; for (int i = 0; i < K; i++) { cin >> D[i]; sum += D[i]; } ll past = 0; for (int i = 0; i < K; i++) { ll l = past + 1, r = past + D[i]; ll L = (l + N - 2)/N*N + 1,R = (r - 1)/N*N + 1; ll L2 = L - N,R2 = R + N; ll ans = 1e18; if (L2 - 1 >= i) ans = l - L2; if (R2 + K - i - 1 <= sum) ans = min(ans, R2 - r); if (ans < 1e18) cout << ans << endl; else cout << -1 << endl; past += D[i]; } return 0; }