#include #include using mint = atcoder::modint998244353; using namespace std; using ll = long long; using ld = long double; template using vc = vector; template using vvc = vc>; void solve(); int main() { cin.tie(nullptr); ios::sync_with_stdio(false); cout << fixed << setprecision(20); ll t = 1; // cin >> t; for (int i = 1; i <= t; i++) solve(); return 0; } #define rep(i, a, b) for (ll i = (a); i < (b); i++) ll dy[4] = {0, 1, 0, -1}, dx[4] = {1, 0, -1, 0}; void solve() { ll n, m, k; cin >> n >> m >> k; vvc dp(m + 1, vc(1 << n)); rep(i, 0, 1 << n) dp[1][i] = 1; rep(i, 1, m) { rep(j, 0, 1 << n) { rep(l, 0, 1 << n) { ll cnt = 0; rep(x, 0, n) if ((j >> x & 1) && (l >> x & 1)) cnt++; if (cnt >= k) dp[i + 1][l] += dp[i][j]; } } } mint res = 0; rep(i, 0, 1 << n) res += dp[m][i]; cout << res.val() << endl; }