#P13848. [codefestival2016 final]Reverse Grid

[codefestival2016 final]Reverse Grid

题目描述

有一个纵向 HH 行、横向 WW 列的网格,第 ii 行第 jj 列的格子中写有字符 Si,jS_{i,j}

すぬけくん可以对这个网格进行以下两种操作:

  • 行反转:选择一行,将该行反转。
  • 列反转:选择一列,将该列反转。

例如,先反转第 22 行,再反转第 44 列,网格会发生如下变化:

通过以任意顺序进行上述操作若干次,可以得到多少种不同的字符排列方式?

输入格式

输入以如下格式从标准输入给出。

HH WW S1,1S_{1,1} S1,2S_{1,2} \ldots S1,WS_{1,W} S2,1S_{2,1} S2,2S_{2,2} \ldots S2,WS_{2,W} :: SH,1S_{H,1} SH,2S_{H,2} \ldots SH,WS_{H,W}

输出格式

请输出答案对 1000000007 (=109+7)1000000007\ (=10^9+7) 取模后的结果。

输入输出样例 #1

输入 #1

2 2
cf
cf

输出 #1

6

输入输出样例 #2

输入 #2

1 12
codefestival

输出 #2

2

说明/提示

限制条件

  • 1H,W2001 \leq H, W \leq 200
  • Si,jS_{i,j} 是小写英文字母(a-z)。