#WC003. 翻转

翻转

题目描述

青正在观测一个由基础粒子组成的元序列 SS,由 01? 组成,然后这个元序列进行了一次展开,由 SSKK 份复制串联得到了新序列 TT

序列中为 ? 的粒子会等概率地坍缩到 01,设 qq 为元序列 SS 中为 ? 的粒子数量,青想知道在 2Kq2^{Kq} 种可能中,每种可能他需要最少用多少次区间翻转操作才能将序列变为全相同。

你只需帮助青计算所有可能的最少操作次数总和模 109+710^9+7 即可。

一次区间翻转操作的定义为:

  • TT' 为坍缩后的序列,选择整数 l,rl,r 使得 1lrT1 \leq l \leq r \leq |T'|,然后使序列的第 lrl \sim r 个粒子 0 变为 11 变为 0

约束条件

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

输入格式

输入格式如下:

SS
KK

输出格式

输出答案。

输入输出样例 #1

输入 #1

101
2

输出 #1

2

输入输出样例 #2

输入 #2

?0?
1

输出 #2

3

输入输出样例 #3

输入 #3

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

输出 #3

235562598

样例解释 1

TT101101,可以先把它变为 110011,再变为 111111,需要最少 22 次区间翻转操作。