Загрузка данных


import sys

def solve():
    input_data = sys.stdin.read().split()
    if not input_data:
        return
    n = int(input_data[0])
    k = int(input_data[1])
    s = [int(x) for x in input_data[2:]]

    offset = [0] * n
    for i in range(k, n):
        offset[i] = offset[i-k] + s[i-k+1] - s[i-k]

    min_val = [0] * k
    max_val = [1] * k

    for i in range(n):
        m = i % k
        diff = offset[i]
        if -diff > min_val[m]:
            min_val[m] = -diff
        if 1 - diff < max_val[m]:
            max_val[m] = 1 - diff

    ans_base = [0] * k
    s_remain = s[0]
    max_rem = sum(max_val)

    for m in range(k):
        max_rem -= max_val[m]
        val = max(min_val[m], s_remain - max_rem)
        ans_base[m] = val
        s_remain -= val

    res = [str(ans_base[i % k] + offset[i]) for i in range(n)]
    print("".join(res))

if __name__ == '__main__':
    solve()