考虑一个大小为 $N \times M$ 的矩形网格。每个单元格都被涂成黑色或白色。
如果你触碰网格中的一个单元格 $C$,你会改变与 $C$ 同色的连通分量中所有单元格的颜色(包括 $C$ 本身)。对于连通分量,如果两个单元格共享一条边,则它们是相邻的。
你知道网格的当前状态,但你可能已经触碰过某些单元格任意次数。请计算网格可能的初始状态数量。由于答案可能非常大,请将其对 $1\,000\,000\,007$ 取模。
输入格式
第一行包含两个整数 $N$ 和 $M$,表示网格的尺寸 ($1 \le N, M \le 2000$)。
接下来的 $N$ 行,每行描述网格的一行。每行包含 $M$ 个字符,表示该行单元格的颜色。每个字符要么是 “B”(黑色),要么是 “W”(白色)。
输出格式
输出可能的初始状态数量,对 $1\,000\,000\,007$ 取模。
样例
样例输入 1
2 2 WW WB
样例输出 1
2