#agc003f. [agc003_f]Fraction of Fractal

[agc003_f]Fraction of Fractal

Snuke 从他的母亲那里得到了生日礼物 —— 一个网格。网格有 HHWW 列。每个单元格都是黑色或白色。所有黑色单元格都是四联通的,也就是说,只做水平或垂直移动且只经过黑色单元格即可从任何黑色单元格移动到任何其他黑色单元格。

ii 行第 jj(1iH,1jW)(1\le i\le H,1\le j\le W) 的单元格的颜色由字符 sijs_{ij} 表示。如果 sijs_{ij}#,该单元格为黑色;如果 sijs_{ij}.,该单元格为白色。至少一个单元格是黑色的。

我们定义「nn 级分形」如下:00 级分形是一个 1×11\times1 的黑色单元格。nn 级分形由 n1n-1 级分形变化而来。具体地,将 n1n-1 级分形的每一个黑色单元格替换为 Snuke 的网格,每一个白色单元格替换为与 Snuke 的网格尺寸相同的全部为白色的网格,就成了 nn 级分形。

Snuke 喜欢连通块。现在他想你告诉他,KK 级分形中,有多少个黑色格子组成的四联通块?

为了避免输出量超出不着实际的边界,Snuke 要你对 109+710^9+7 取模。