/* -*- coding: utf-8 -*- * * 3715.cc: No.3715 Tomorrow is MONDAY!!!!!! - yukicoder */ #include #include using namespace std; /* constant */ const int MAX_K = 200000; const long long LINF = 1LL << 62; /* typedef */ using ll = long long; /* global variables */ int ds[MAX_K]; ll dss[MAX_K + 1]; /* subroutines */ /* main */ int main() { int k; ll n; scanf("%d%lld", &k, &n); for (int i = 0; i < k; i++) scanf("%d", ds + i); for (int i = 0; i < k; i++) dss[i + 1] = dss[i] + ds[i]; for (int i = 0; i < k; i++) { ll r0 = dss[i] % n, r1 = dss[i + 1] % n; ll d0 = (r0 == 0) ? n : r0; ll e0 = dss[i] - i; ll d1 = (r1 == 0) ? 1 : n + 1 - r1; ll e1 = (dss[k] - dss[i + 1]) - (k - (i + 1)); ll d = min((d0 <= e0) ? d0 : LINF, (d1 <= e1) ? d1 : LINF); printf("%lld\n", (d < LINF) ? d : -1LL); } return 0; }