#CF2004G. 子串压缩

子串压缩

G. 子串压缩
时间限制:每个测试点 22
内存限制:10241024 兆字节

我们定义一个对字符串 tt 的压缩操作,其中 tt 由至少 22 个数字 1199 组成,操作步骤如下:

  • tt 分成偶数个非空子串,设这些子串为 t1,t2,,tmt_1, t_2, \dots, t_m(即 t=t1+t2++tmt = t_1 + t_2 + \dots + t_m,其中 ++ 表示字符串拼接);
  • 然后写出字符串 t2t_2 重复 t1t_1 次,接着写出 t4t_4 重复 t3t_3 次,依此类推。

例如,对于字符串 "12345",可以将其拆分为 ("1", "23", "4", "5"),然后写出 "23" 重复 11 次,再写出 "5" 重复 44 次,得到 "235555"

定义函数 f(t)f(t) 为对字符串 tt 执行上述过程所能得到的字符串的最小长度

现在给你一个由数字 1199 组成的字符串 ss,长度为 nn,以及一个整数 kk。请计算 ss 的所有长度为 kk 的连续子串的 ff 值。


输入格式
第一行包含两个整数 nnkk2kn21052 \le k \le n \le 2 \cdot 10^5)。

第二行包含字符串 sss=n|s| = n),仅由数字 1199 组成。


输出格式
输出 nk+1n - k + 1 个整数,依次是 f(s[1..k]),f(s[2..k+1]),,f(s[nk+1..n])f(s[1..k]), f(s[2..k+1]), \dots, f(s[n-k+1..n])


样例输入

4 4
5999

样例输出

14

样例输入 2

10 3
1111111111

样例输出 2

2 2 2 2 2 2 2 2

样例输入 3

11 4
49998641312

样例输出 3

12 18 17 15 12 7 7 2