#include #include #define int long long using namespace std; signed main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, m, k; cin >> n >> m >> k; vector>dp(n + 1, vector(m + 1, 0)); for (int i = 1; i <= m; i++) { dp[1][i] = 1; } vectorsum(m + 1, 0); for (int i = 2; i <= n; i++) { for (int j = 1; j <= m; j++) { sum[j] = (sum[j - 1] + dp[i - 1][j]) % 998244353; } for (int j = 1; j <= m; j++) { int x = 0; if (j - k >= 1) { x = sum[j - k]; } int y = 0; if (j + max(k, 1ll) <= m) { y = (sum[m] - sum[j + max(k, 1ll) - 1] + 998244353) % 998244353; } dp[i][j] = (x + y) % 998244353; } } int ans = 0; for (int i = 1; i <= m; i++) { ans = (ans + dp[n][i]) % 998244353; } cout << ans << endl; return 0; }