#Lutece2781. 方格纸

方格纸

Migrated from Lutece 2781 方格纸

All parts of this problem, including description, images, samples, data and checker, might be broken. If you find bugs in this problem, please contact the admins.

Description

ljj 的方格纸用光了,于是他向 NamelessOIer 求(白)助(嫖),希望他能给自己几张方格纸用用,但是 NamelessOIer 想趁机考验一下 ljj ,检查一下他最近的训练状态,如果他能做出这道关于方格的题,他就送给 ljj 一包方格纸,题目如下:

给一个 n×mn\times m 的网格,已经有一些位置被填上了黑色和白色,这些位置的颜色不能改变,还有一些格子的颜色可以改变,ljj 可以把这些格子涂成黑色和白色。现在要问有多少种涂色方案同时满足如下两个条件:

  1. 所有黑色方块连在一起,所有白色方块也连在一起
  2. 任何一个2*2的子矩阵四个方块颜色不能均相同

例如在下面的四个图中,只有图1满足条件,图2不符合条件2,图3条件1 2均不符合,图4不符合条件2

由于 ljj 太菜了,所以他向你求助,如果你做出了这道题,他会送给你一包方格纸 4Q6YZ.png

Input

第一行读入两个整数 n,m 表示方格的行数和列数

接下来 n 行 m 列读入方格信息,#代表被固定黑色,o代表固定白色,.代表颜色可以改变

Output

输出一个整数表示方案数,保证方案数在 int 范围内

Samples

2 3
.o.
.#.
9
7 7
.......
.......
.......
.......
.......
.......
.......
230568

Constraints

n,m8n,m \le 8

Resources

2022 UESTC ICPC Training for String and Search Algorithm