#include #include using namespace std; using mint = atcoder::modint998244353; int main(){ ios::sync_with_stdio(false); cin.tie(0); int h, w, K; cin >> h >> w >> K; vector> T(1 << h); vector dp(1 << h, 1); for(int S = 0; S < (1 << h); S++){ for(int U = 0; U < (1 << h); U++){ if(__builtin_popcount(S & U) >= K) T[S].emplace_back(U); } } for(int x = 1; x < w; x++){ vector ndp(1 << h); for(auto &&S : T.back()){ for(auto &&U : T[S]) ndp[U] += dp[S]; } swap(ndp, dp); } cout << accumulate(dp.begin(), dp.end(), mint(0)).val() << '\n'; }