begin
var k := ReadLnInteger('Введите k:'); k -= 1;
var s := ReadLnString('Введите последовательность двоичных чисел:');
Delete(s, s.Length - s.Length mod k + 1, k);
WriteLn('Сокращаем количество символов до ', s.Length div k * k, ': ', s);
for var i := 1 to s.Length div k do insert(' ', s, i * k + i);
WriteLn('Преобразуем строку: ', s);
for var i := 1 to s.Length div (k + 1) do
begin
var c := 0;
for var j := (i - 1) * (k + 1) + 1 to i * (k + 1) - 1 do
if s[j] = '1' then c += 1;
s[i * (k + 1)] := chr(48 + c mod 2);
end;
WriteLn('Закодированная последовательность: ', s)
end.