#include #include using namespace std; using Mint = atcoder::modint1000000007; int main() { int H, W; cin >> H >> W; vector V(H); for (auto &x : V) cin >> x; vector> D(H, vector(H)); D[0][H - 1] = V[0][0] == V[H-1][W-1]; for (int s = 0; s < (H + W - 2)/2; s++) { vector> E(H, vector(H)); for (int i = 0; i < H; i++) for (int j = 0; j < H; j++) if (D[i][j].val()) { int ux = i, uy = s - i, vx = j, vy = (H + W - 2 - s) - j; if(ux != H-1 && vx != 0 && V[ux+1][uy] == V[vx-1][vy]) E[ux+1][vx-1] += D[i][j]; if(ux != H-1 && vy != 0 && V[ux+1][uy] == V[vx][vy-1]) E[ux+1][vx] += D[i][j]; if(uy != W-1 && vx != 0 && V[ux][uy+1] == V[vx-1][vy]) E[ux][vx-1] += D[i][j]; if(uy != W-1 && vy != 0 && V[ux][uy+1] == V[vx][vy-1]) E[ux][vx] += D[i][j]; } D = E; } Mint ans = 0; for(int i=0; i