← Home
write a go solution for Description:
You are given two integers n and k.

For an array of length n, let's define its cost as the maximum number of contiguous subarrays of this array that can be chosen so that:

- each element belongs to at most one subarray;
- the length of each subarray is exactly k;
- each subarray contains each integer from 1 to k exactly once.

For example, if n=10, k=3 and the array is [1,2,1,3,2,3,2,3,1,3], its cost is 2 because, for example, we can choose the subarrays from the 2-nd element to the 4-th element and from the 7-th element to the 9-th element, and we can show that it's impossible to choose more than 2 subarrays.

Calculate the sum of costs over all arrays of length n consisting of integers from 1 to k, and print it modulo 998244353.

Input Format:
The only line of the input contains two integers n and k (2<=k<=n<=4000).

Output Format:
Print one integer — the sum of costs of all arrays of length n consisting of integers from 1 to k taken modulo 998244353.

Note:
None. Output only the code with no comments, explanation, or additional text.