← Home
```go
package main

import (
	"fmt"
	"strings"
)

func main() {
	var n, k int
	fmt.Scan(&n, &k)
	const MOD = 998244353
	ans := make([]int, n+1)
	prev := make([]int, n+1)
	curr := make([]int, n+1)
	prev[0] = 1
	for t := 1; t <= n+1; t++ {
		d := k + t - 1
		if d > n {
			break
		}
		for y := 0; y <= n; y++ {
			if y < d {
				curr[y] = 0
			} else {
				curr[y] = (curr[y-d] + prev[y-d]) % MOD
			}
		}
		for y := 1; y <= n; y++ {
			ans[y] = (ans[y] + curr[y]) % MOD
		}
		prev, curr = curr, prev
	}
	var output []string
	for x := 1; x <= n; x++ {
		output = append(output, fmt.Sprint(ans[x]))
	}
	fmt.Println(strings.Join(output, " "))
}
```