#include using namespace std; using ll = long long; using ld = long double; #ifdef LOCAL #include #else #define debug(...) void(0) #endif #include using namespace atcoder; using mint = modint998244353; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N, M, K; cin >> N >> M >> K; vector> dp(M + 1, vector(1 << N, 0)); for(int i = 0; i < (1 << N); i++) dp[1][i]++; for(int i = 0; i < M; i++) { for(int bit1 = 0; bit1 < (1 << N); bit1++) { if(__builtin_popcount(bit1) < K) continue; for(int bit2 = 0; bit2 < (1 << N); bit2++) { if(__builtin_popcount(bit2) < K) continue; if(__builtin_popcount(bit1 & bit2) >= K) { dp[i + 1][bit1] += dp[i][bit2]; } } } } mint ans = 0; for(int i = 0; i < (1 << N); i++) { ans += dp[M][i]; } cout << ans.val() << endl; }