#1306. zxh的校验数据

内存限制:512 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: q3540555

题目描述

Sheauhaw 为了防止别人篡改他的数据, 他发明了以下算法来保护他的数据:

Sheauhaw 发送的数据都是01串, 长度为 nn. 设该数据为 s=s1s2sns=s_1s_2\cdots s_n. Sheauhaw 通过 s1=s1s'_1=s_1, sk=sksk1s'_k=s_{k} \oplus s_{k-1} (k>1k>1) 的方法得到校验数据 s=s1s2sn:=p(s)s'=s'_1s'_2\cdots s'_n:=p(s). 其中 \oplus 表示按位异或运算.

原始数据是 00 层校验数据, 通过对 kk 层校验数据 sks_k 加密, 可得到 k+1k+1 层校验数据 sk+1:=p(sk)s_{k+1}:=p(s_k).

现在, Sheauhaw 将对原始数据加密 tt 层, 得到 tt 层校验数据 AA. 现在, 你也需要输出校验数据, 来破解 Sheauhaw 的校验算法!

输入格式

第一行两个整数, 表示数据长度 nn 和校验层数 tt.

第二行一个01串, 表示原始数据.

输出格式

一行一个01串, 表示 tt 层校验数据.

样例

样例输入1

5 3
10101

样例输出1

11000

样例输入2

41 114514
10000101010011111110001110000000001000010

这个数据是1145141919810的二进制形式.

样例输出2

10100100000111001011111101111100001100100

数据范围与提示

1n10241\le n\le 1024

1t10181\le t\le 10^{18}