#include <bits/stdc++.h>
using namespace std;
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("Ofast")
#pragma GCC optimize("O0")
#pragma GCC optimize("O1")
long long pw(int a, int b) {
  long long ret = 1;
  long long mul = a;
  while (b > 0) {
    if (b & 1) ret *= mul;
    mul *= mul;
    b /= 2;
  }
  return ret;
}
long long to_int(string s) {
  long long ret = 0;
  for (int(i) = (0); (i) < (s.size()); (i)++) {
    ret += pw(10, s.size() - i - 1) * (long long)(s[i] - '0');
  }
  return ret;
}
const int MAXN = 5e2 + 5.2, mod = 1e9 + 7;
int n, m, old[MAXN][MAXN], nw[MAXN][MAXN], ans;
string a[MAXN];
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  ;
  cin >> n >> m;
  for (int(i) = (0); (i) < (n); (i)++) cin >> a[i];
  old[0][n - 1] = (a[0][0] == a[n - 1][m - 1]);
  for (int(d) = (1); (d) < ((n + m - 2) / 2 + 1); (d)++) {
    for (int(r1) = (0); (r1) < (n); (r1)++) {
      for (int(r2) = (r1); (r2) < (n); (r2)++) {
        int c1 = d - r1, c2 = m + n - d - r2 - 2;
        if (c1 >= m or c2 >= m or c1 < 0 or c2 < 0 or c2 < c1) {
          nw[r1][r2] = 0;
          continue;
        }
        if (a[r1][c1] != a[r2][c2])
          nw[r1][r2] = 0;
        else {
          nw[r1][r2] = 0;
          if (r1) {
            if (r2 < n - 1) {
              nw[r1][r2] += old[r1 - 1][r2 + 1];
              if (nw[r1][r2] >= mod) nw[r1][r2] -= mod;
            }
            if (c2 < m - 1) {
              nw[r1][r2] += old[r1 - 1][r2];
              if (nw[r1][r2] >= mod) nw[r1][r2] -= mod;
            }
          }
          if (c1) {
            if (r2 < n - 1) {
              nw[r1][r2] += old[r1][r2 + 1];
              if (nw[r1][r2] >= mod) nw[r1][r2] -= mod;
            }
            if (c2 < m - 1) {
              nw[r1][r2] += old[r1][r2];
              if (nw[r1][r2] >= mod) nw[r1][r2] -= mod;
            }
          }
        }
        if (r2 - r1 + c2 - c1 <= 1) {
          ans += nw[r1][r2];
          if (ans >= mod) ans -= mod;
        }
      }
    }
    memcpy(old, nw, sizeof nw);
  }
  cout << ans << "\n";
}
