Given positive integers N, K and M, solve the following problem for every integer x between 1 and N (inclusive):
 - Find the number, modulo M, of non-empty multisets containing between 0 and K (inclusive) instances of each of the integers 1, 2, 3 \cdots, N such that the average of the elements is x.

-----Constraints-----
 - 1 \leq N, K \leq 100
 - 10^8 \leq M \leq 10^9 + 9
 - M is prime.
 - All values in input are integers.

-----Input-----
Input is given from Standard Input in the following format:
N K M

-----Output-----
Use the following format:
c_1
c_2
:
c_N

Here, c_x should be the number, modulo M, of multisets such that the average of the elements is x.

-----Sample Input-----
3 1 998244353

-----Sample Output-----
1
3
1

Consider non-empty multisets containing between 0 and 1 instance(s) of each of the integers between 1 and 3. Among them, there are:
 - one multiset such that the average of the elements is k = 1: \{1\};
 - three multisets such that the average of the elements is k = 2: \{2\}, \{1, 3\}, \{1, 2, 3\};
 - one multiset such that the average of the elements is k = 3: \{3\}.

```python

USER_FILENAME = "<user_code>"
import sys, json, builtins
import math, heapq, bisect, itertools, functools, collections, statistics, fractions, decimal, operator, array, random, re, string, os, pathlib
try:
    import resource as _res
except Exception:
    _res = None
from collections import Counter, defaultdict, deque, OrderedDict
from functools import lru_cache, reduce
from itertools import accumulate, permutations, combinations, product
from math import gcd, ceil, floor, sqrt
from decimal import Decimal
try:
    from typing import *
except Exception:
    pass
try:
    sys.setrecursionlimit(1_000_000)
except Exception:
    pass
try:
    import site as _site
    try:
        _sys_sites = _site.getsitepackages() if hasattr(_site, "getsitepackages") else []
        for _p in _sys_sites:
            if _p and _p not in sys.path:
                sys.path.append(_p)
    except Exception:
        pass
    try:
        _usp = _site.getusersitepackages()
        if isinstance(_usp, str):
            _usp = [_usp]
        for _p in _usp:
            if _p and _p not in sys.path:
                sys.path.append(_p)
    except Exception:
        pass
except Exception:
    pass

ns = {"__name__": "__main__"}
for _k, _v in list(globals().items()):
    if not _k.startswith("_"):
        ns[_k] = _v
_CODE = "import sys\nreadline = sys.stdin.readline\n\nN, K, MOD = list(map(int, readline().split()))\n\nMAX = K*(N//2)*(N//2+1)//2+1\n\n\ntable = [[1]]\n\nfor idx in range(1, N+1):\n    dp = table[-1]\n    dp2 = dp + [0]*(idx*(K+1))\n    s = idx*(K+1)\n    for i in range(min(len(dp), len(dp2)-s)):\n        dp2[i+s] = (dp2[i+s] + -dp[i])%MOD\n    for i in range(len(dp2)-idx):\n        dp2[i+idx] = (dp2[i+idx]+dp2[i])%MOD\n    \n    if len(dp2) > MAX:\n        dp2 = dp2[:MAX]\n    table.append(dp2)\n\nAns = [None]*(N+1)\nfor x in range(1, N+1):\n    if N-x < x:\n        Ans[x] = Ans[N+1-x]\n    ans = 0\n    for i in range(min(len(table[x-1]), len(table[N-x]))):\n        ans = (ans + table[x-1][i]*table[N-x][i])%MOD\n    ans = (ans*(K+1)-1)%MOD\n    Ans[x] = ans\nprint(('\\n'.join(map(str, Ans[1:]))))\n"
_co = compile(_CODE, USER_FILENAME, "exec")
exec(_co, ns, ns)

```

Measured memory_bytes: 13919