Score : 1900 points
Snuke has a grid with H rows and W columns. The square at the i-th row and j-th column contains a character S_{i,j}.
He can perform the following two kinds of operation on the grid:
For example, reversing the 2-nd row followed by reversing the 4-th column will result as follows:

By performing these operations any number of times in any order, how many placements of characters on the grid can be obtained?
a-z).The input is given from Standard Input in the following format:
H W
S_{1,1}S_{1,2}...S_{1,W}
S_{2,1}S_{2,2}...S_{2,W}
:
S_{H,1}S_{H,2}...S_{H,W}
Print the number of placements of characters on the grid that can be obtained, modulo 1000000007 (=10^9+7).
2 2 cf cf
6
The following 6 placements of characters can be obtained:

1 12 codefestival
2