正义从不打背身
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

*"正义之枪从不打背身"*。小x最近迷上了无畏契约,钟爱"正义"这把武器。可他使用该武器有一条原则:不击杀(打不中)背对自己的敌人。小x实力强大,对于所有直面自己的敌人都能一击毙命。

在一次游戏中。小x面前有n个点位,从左往右序依次为1,2,3,……,n。每个点位上都有一个敌人。

每个敌人 要么正面朝向小x,要么背面朝向小x。

小x实力强大,打算强迫这n个敌人玩m轮小游戏之后再对每个人开枪。

游戏规则如下:

在第i轮小游戏中,依次执行以下所有操作:

* 序号为[1,i]的点位上的敌人位置改变。改变规则为: 从1,2,3,……,i 变为i,i-1,……,3,2,1(原来位于i号位置的敌人更换到1号位置,位于i-1号位置的敌人更换到2号位置……)

* 序号为[1,i]的点位上的敌人原地旋转180°。

所有小游戏过后,小x想知道。目前在每个点位的敌人是否被击败。

输入描述:

第一行输入两个整数 n,m

接下来一行输入一个仅由'P'和‘B'组成的字符串s。s_i='P' 表示第i个点位的敌人当前正面对小x。s_i='B'表示第i个点位的敌人当前正背对小x。

对于所有数据保证:1\le m \le n\le 2\times 10^6|s|=n

输出描述:

输出一行n个整数。对于第i个数,如果目前位于第i个点位的敌人被击败则输出1,否则输出0。
示例1

输入

复制
3 3
PPP

输出

复制
0 0 1