#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define rep(i, n) for(i = 0; i < n; i++) #define int long long using namespace std; using namespace atcoder; using mint = modint998244353; int n, m, K; mint dp[200001][1 << 5]; int bitCnt[1 << 5]; signed main() { int i, j, k; cin >> n >> m >> K; rep(i, 32) { rep(j, 5) bitCnt[i] += (i >> j) % 2; if (i < (1LL << n)) dp[1][i] = 1; } for (i = 1; i < m; i++) { rep(j, (1LL << n)) { if (dp[i][j] == 0) continue; rep(k, (1LL << n)) { if (bitCnt[j & k] < K) continue; dp[i + 1][k] += dp[i][j]; } } } mint ans = 0; rep(i, (1LL << n)) ans += dp[m][i]; cout << ans.val() << endl; return 0; }