MOD = 10**9 + 7 H, W = map(int, input().split()) grid = [input().strip() for _ in range(H)] L = H + W - 1 P = L // 2 dp = [[0] * (W + 1) for _ in range(H + 1)] dp[1][1] = 1 if grid[0][0] == grid[H-1][W-1] else 0 for i in range(1, H + 1): for j in range(1, W + 1): if i == 1 and j == 1: continue k = i + j - 2 if k < P: mirror_i = H - i + 1 mirror_j = W - j + 1 if 1 <= mirror_i <= H and 1 <= mirror_j <= W: if grid[i-1][j-1] != grid[mirror_i-1][mirror_j-1]: dp[i][j] = 0 else: dp[i][j] = (dp[i-1][j] + dp[i][j-1]) % MOD else: dp[i][j] = 0 else: dp[i][j] = (dp[i-1][j] + dp[i][j-1]) % MOD print(dp[H][W] % MOD)