#include #include namespace nono { using mint = atcoder::modint998244353; void solve() { int H, W, K; std::cin >> H >> W >> K; std::vector S(H); for (int i = 0; i < H; i++) std::cin >> S[i]; std::vector dp(H + 1, std::vector>(W, std::vector(K + 1))); dp[0][0][K] = 1; auto outside = [&](int i, int j) { return i < 0 || j < 0 || i >= H || j >= W; }; const int DI[] = {1, 0}; const int DJ[] = {0, 1}; for (int i = 0; i < H; i++) { for (int j = 0; j < W; j++) { for (int k = 1; k <= K; k++) { for (int l = 0; l < 2; l++) { int ni = i + DI[l]; int nj = j + DJ[l]; if (outside(ni, nj)) continue; if (S[ni][nj] == '#') continue; if (S[ni][nj] == '.') { dp[ni][nj][k] += dp[i][j][k]; } else { dp[ni][nj][k - 1] += dp[i][j][k]; } } } } } mint ans = 0; for (int i = 1; i <= K; i++) { ans += dp[H - 1][W - 1][i]; } std::cout << ans.val() << std::endl; } } // namespace nono int main() { std::cin.tie(0)->sync_with_stdio(0); std::cout << std::fixed << std::setprecision(15); int t = 1; // std::cin >> t; while (t--) nono::solve(); }