#include using namespace std; #include using mint = atcoder::modint998244353; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int H, W; cin >> H >> W; vector S(H); for (int i = 0; i < H; i++) cin >> S[i]; int N = H + W + 1; vector> dp(N, vector(N)); dp[1][0] = 1; for (int t = 1; t < N - 3; t++) { vector> ep(N, vector(N)); for (int i = 0; i < N - 1; i++) { for (int j = 0; j < N - 1; j++) { int ar = i, ac = t - i; int br = j, bc = t - j; if (ac < 0 || bc < 0) continue; for (int x : {0, 1}) { int xr = ar, xc = ac; (x ? xr : xc)++; if (0 <= xr && xr < H && 0 <= xc && xc < W && S[xr][xc] == '.') { for (int y : {0, 1}) { int yr = br, yc = bc; (y ? yr : yc)++; if (0 <= yr && yr < H && 0 <= yc && yc < W && S[yr][yc] == '.') { if (t == N - 4 || xr != yr) { ep[xr][yr] += dp[i][j]; } } } } } } } dp = ep; } cout << dp[H - 1][H - 1].val() << endl; }