P = 10 ** 9 + 7 N, M = map(int, input().split()) F = [1] * (11 * 10 ** 5) ans = 0 for i in range(1, 11 * 10 ** 5): F[i] = F[i - 1] * i % P S = [list(map(int, input().split())) + [0] for i in range(N)] + [[0] * (M + 1)] for i in range(N + 1): for j in range(M + 1): x = F[S[i][j] + i + j] * pow((F[i] * F[j] * F[S[i][j]]) % P, P - 2, P) % P if S[i][j] != S[i - 1][j] and S[i][j] != S[i + 1][j]: ans += x ans %= P elif S[i][j] == S[i - 1][j]: ans += x * pow(S[i][j] + i, P - 2, P) * S[i][j] ans %= P else: ans += x * pow(S[i][j] + j, P - 2, P) * S[i][j] ans %= P print(ans)