你有一个长为 n 的序列,每个位置是 * 或者 +,* 表示让变量加上自身,+ 表示让变量 +1 。
*
+
现在你要选出它的一个子序列(子序列即原序列中取出一些位置,顺序不变地拼成的序列),使得一个初始为 0 的变量在对子序列中的字符依次执行对应操作后对 2^k 取模所得结果尽可能大。求出最大可能的结果。
第一行两个正整数 n,k ,表示序列长度以及模数为 2^k 。
第二行一个长为 n 的字符串表示序列。
一行一个正整数,为答案的二进制表示,不含前导零,但答案为 0 时要输出 0 (而不是空串)。
9 5 ++*++***+
11001
有多种选法可以达到最大,如++*++**+ 和 +++***+。
++*++**+
+++***+
对于所有数据, 1\le n,k\le 10^6 。