def solve(s): cnt = 1 for si in s: c = all(i != "1" for i in si[::2]) and all(i != "0" for i in si[1::2]) c += all(i != "0" for i in si[::2]) and all(i != "1" for i in si[1::2]) cnt = cnt*c%MOD return cnt h,w = map(int,input().split()) s = [input() for _ in range(h)] MOD = 10**9+7 ans = solve(s) + solve(zip(*s)) r = "01" c1 = c2 = 1 for i in range(h): for j in range(w): if s[i][j] == r[(i+j)%2]: c1 = 0 if s[i][j] == r[(i+j+1)%2]: c2 = 0 print((ans-c1-c2)%MOD)