#abc200f. [abc200_f]Minflip Summation

[abc200_f]Minflip Summation

题目描述

我们有一个由 01? 组成的字符串 SS。令 TTSSKK 个副本的拼接。
通过用 01 替换 TT 中的每个 ?,我们可以获得 2Kq2^{Kq} 个字符串,其中 qqSS 中的 ? 的数量。对每个字符串解决下面的问题,并找到所有答案的和,对 (109+7)(10^9+7) 取模。

TT' 是用 ? 替换 TT 得到的字符串。我们将重复执行下面的操作,使所有 TT 中的字符相同。至少需要多少次操作?

  • 选择整数 llrr,使得 1lrT1 \le l \le r \le |T'|,并将 TT 的第 ll 到第 rr 个字符取反:从 0 变为 1,从 1 变为 0

约束条件

  • 1S1051 \le |S| \le 10^5
  • 1K1091 \le K \le 10^9

输入

输入以以下格式从标准输入中给出:

SS KK

输出

打印一个整数作为答案。


示例输入 1

101
2

示例输出 1

我们有 T=T= 101101,其中不包含 ?,所以我们只需要解决唯一的 T=T'= 101101 的问题。
我们可以在两次操作内使所有字符相同,例如 101101 rightarrow\\rightarrow 110011 rightarrow\\rightarrow 111111
我们无法在一次或更少的操作内使所有字符相同。


示例输入 2

?0?
1

示例输出 2

我们有四个 TT' 的候选:000001100101


示例输入 3

10111?10??1101??1?00?1?01??00010?0?1??
998244353

示例输出 3

235562598

由于答案可能很大,对 (109+7)(10^9+7) 取模后输出。