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


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:]]
    
    diff = [0] * (n + 1)
    for i in range(1, n - k + 1):
        diff[i + k] = s[i] - s[i - 1]
        
    delta = [0] * (n + 1)
    for i in range(1, n + 1):
        if i <= k:
            delta[i] = 0
        else:
            delta[i] = delta[i - k] + diff[i]

    status = [-1] * (k + 1)
    
    for i in range(1, n + 1):
        j = (i - 1) % k + 1
        min_aj = -delta[i]
        max_aj = 1 - delta[i]
        
        if min_aj == 1:
            status[j] = 1
        if max_aj == 0:
            status[j] = 0

    fixed_ones = 0
    free_positions = []
    for j in range(1, k + 1):
        if status[j] == 1:
            fixed_ones += 1
        elif status[j] == -1:
            free_positions.append(j)
            
    needed_ones = s[0] - fixed_ones

    for idx, j in enumerate(free_positions):
        if idx < len(free_positions) - needed_ones:
            status[j] = 0
        else:
            status[j] = 1
            
    a = [0] * (n + 1)
    for j in range(1, k + 1):
        a[j] = status[j]
        
    for i in range(k + 1, n + 1):
        a[i] = a[i - k] + diff[i]
        

    print("".join(map(str, a[1:])))

if __name__ == '__main__':
    solve()