import sys
def solve():
# Чтение всех данных из стандартного потока ввода
input = sys.stdin.read
data = input().split()
if not data:
return
n = int(data[0])
k = int(data[1])
# Список сумм s_0, s_1, ..., s_{n-k}
s = [int(x) for x in data[2:2 + n - k + 1]]
# Массивы для определения ограничений на первые k элементов
# fixed[r] будет хранить обязательное значение (0 или 1), если оно зафиксировано, иначе -1
fixed = [-1] * k
# delta[i][r] показывает разность между x_{i*k + r} и x_r
# Будем вычислять её последовательно шаг за шагом
current_delta = [0] * k
# Проходим по всем окнам и смотрим, как меняются элементы при сдвиге на k
for i in range(n - k):
diff = s[i+1] - s[i]
r = i % k
# x_{i+k} = x_i + diff
# Следовательно, новая дельта относительно x_r увеличивается на diff
current_delta[r] += diff
# Индекс целевого элемента
target_idx = i + k
target_r = target_idx % k
# Проверяем ограничения на значение x_r
if current_delta[target_r] == 1:
fixed[target_r] = 0
elif current_delta[target_r] == -1:
fixed[target_r] = 1
# Посчитаем, сколько единиц уже ЖЕСТКО зафиксировано в первом окне
fixed_ones = 0
for r in range(k):
if fixed[r] == 1:
fixed_ones += 1
# Сколько еще единиц нам ОСТАЛОСЬ распределить, чтобы сумма первого окна была равна s[0]
rem_ones = s[0] - fixed_ones
# Формируем первые k элементов (первое окно)
# Чтобы строка была лексикографически минимальной, мы хотим распределить оставшиеся единицы
# как можно дальше вправо (на самые большие индексы r)
x = [0] * k
for r in range(k):
if fixed[r] != -1:
x[r] = fixed[r]
else:
# Свободное место. Смотрим, нужно ли нам поставить тут 0 или 1.
# Нам выгодно ставить 0. Ставим 1 только если количество оставшихся свободных мест
# справа (включая текущее) в точности равно количеству оставшихся единиц rem_ones.
free_slots_left = 0
for j in range(r, k):
if fixed[j] == -1:
free_slots_left += 1
if free_slots_left == rem_ones:
x[r] = 1
rem_ones -= 1
else:
x[r] = 0
# Теперь, зная первые k элементов, восстанавливаем всю строку длины n
ans = [0] * n
for r in range(k):
ans[r] = x[r]
current_delta = [0] * k
for i in range(n - k):
diff = s[i+1] - s[i]
r = i % k
current_delta[r] += diff
target_idx = i + k
target_r = target_idx % k
ans[target_idx] = x[target_r] + current_delta[target_r]
# Выводим результат в виде бинарной строки
print("".join(map(str, ans)))
if __name__ == '__main__':
solve()