You wrote down all integers from $0$ to $10^n - 1$, padding them with leading zeroes so their lengths are exactly $n$. For example, if $n = 3$ then you wrote out 000, 001, ..., 998, 999.

A block in an integer $x$ is a consecutive segment of equal digits that cannot be extended to the left or to the right.

For example, in the integer $00027734000$ there are three blocks of length $1$, one block of length $2$ and two blocks of length $3$.

For all integers $i$ from $1$ to $n$ count the number of blocks of length $i$ among the written down integers.

Since these integers may be too large, print them modulo $998244353$.


-----Input-----

The only line contains one integer $n$ ($1 \le n \le 2 \cdot 10^5$).


-----Output-----

In the only line print $n$ integers. The $i$-th integer is equal to the number of blocks of length $i$.

Since these integers may be too large, print them modulo $998244353$.


-----Examples-----
Input
1

Output
10

Input
2

Output
180 10

Difficulty: interview

Starter code:

Solutions:
n = int(input())
out = []

MOD = 998244353 

for i in range(1, n + 1):
    if i == n:
        out.append(10)
    else:
        nex = 2 * 9 * pow(10, n - i - 1, MOD) * 10
        if i < n - 1:
            nex += (n - 1 - i) * 9 * 9 * pow(10, n - i - 2, MOD) * 10
        out.append(nex % MOD)
        

print(' '.join(map(str,out)))
#print(sum((i + 1) * out[i] for i in range(n)))
#print(n * pow(10, n, MOD))


import sys

q = 998244353
def exp(b, e):
    ans = 1
    while e > 0:
        if e % 2 == 0:
            e = e // 2
            b = (b * b) % q
        else:
            ans = ans * b
            e = e - 1
    return ans

n = int(sys.stdin.readline().strip())
x = []
for i in range (1, n):
    ans = 0
    ans = ans + 9 * exp(10, n - i - 1)
    ans = ans + 9 * exp(10, n - i - 1)
    ans = ans + (n - i - 1) * 81 * exp(10, n - i - 2)
    ans = ans * 10
    ans = ans % q
    x.append(str(ans))
x.append(str(10))
print(" ".join(x))

n = int(input())
if n == 1:
    print(10)
elif n == 2:
    print(180, 10)
elif n == 3:
    print(2610, 180, 10)
elif n == 4:
    print(34200, 2610, 180, 10)
else:
    M = 998244353
    B = [0] * (n + 1)
    B[1] %= M
    B[n] = 10
    B[n-1] = 180
    B[n-2] = 2610
    for i in range(1, n-2):
        B[i] = 10 * (18 * pow(10, n - i - 1, M) % M + (n-i-1) * 81 * pow(10, n-i-2, M)) % M
        B[i] %= M
    for i in range(len(B)):
        B[i] %= M
    print(*B[1:])


n = int(input())
p = 998244353
odp = [0] * (n+1)
pote = [1] * 250000
for i in range(1,250000):
	pote[i] = (pote[i-1]*10)%p
for i in range(1,n+1):
	#odp[i]
	if i == n:
		odp[i] = 10
	else:
		brzeg = 2*pote[n-i-1]*10*9
		ile = n-i-1
		srodek_poj = 10 * 9*9 * pote[n-i-2]
		odp[i] = brzeg + ile*srodek_poj
		odp[i] = odp[i]%p
print(*odp[1:])

n = int(input())
arr = [0]
sm = 0
smarr = 0
ten = 1
MOD = 998244353
for i in range(1, n + 1):
    ten = (ten * 10) % MOD
    all = i * ten % MOD
    sm = (sm + smarr) % MOD
    x = (all - sm + MOD) % MOD
    arr.append(x)
    smarr = (smarr + x) % MOD
    sm = (sm + x) % MOD
arr.reverse()
arr.pop()
print(*arr)

N = int(input())
P = 998244353

ANS = []
for i in range(1, N):
    a = 0
    if N - i >= 2: a += (N - i - 1) * 81 * pow(10, N-i-1, P)
    if N - i >= 1: a += 2 * 9 * pow(10, N-i, P)
    ANS.append(a % P)

ANS.append(10)
print(*ANS)


# from io import BytesIO
# import os
# input = BytesIO(os.read(0, os.fstat(0).st_size)).readline

n = int(input())
MOD = 998244353
for k in range(1, n):
    t = ((n - k - 1) * 81 * pow(10, n - k - 2, MOD) * 10 + 10 * 9 * pow(10, n - k - 1, MOD) * 2) % MOD
    print(t, end=' ')
print(10)


MOD = 998244353
n = int(input())
ans = []
for i in range(1, n):
	res = 0
	res += 180 * pow(10, n-1-i, MOD)
	if i+2 <= n:
		res += 810 * (n-1-i) * pow(10, n-2-i, MOD)
	ans.append(res%MOD)
ans.append(10)
print(*ans)

def main():
    import sys
    input = sys.stdin.readline

    N = int(input())
    mod = 998244353

    ten = [0] * (N+1)
    for i in range(1, N+1):
        ten[i] = pow(10, i, mod)

    ans = [0] * (N+1)
    S = 0
    for i in range(1, N+1):
        a = ((ten[i] * i)%mod - ((ten[i-1] * (i-1))%mod + S)%mod)%mod
        ans[i] = a
        S = (S + a)%mod
    ans.reverse()
    print(*ans[:-1])


def __starting_point():
    main()

__starting_point()


n = int(input())

mod = 998244353

ans = []

for i in range(n,0,-1):

    if i == n:
        ans.append(10)
    elif i == n-1:
        ans.append(180)
    else:

        now = 10 * 2 * 9 * pow(10,n-i-1,mod)
        #print (now)
        now += 10 * (n-i-1) * 81 * pow(10,n-i-2,mod)
        ans.append(now % mod)

ans.reverse()
print(*ans)


N = int(input())
mod = 998244353
Ans = []
nums = pow(10, N, mod)
nums_inv = pow(nums, mod-2, mod)
inv10 = pow(10, mod-2, mod)
for d in range(1, N):
    ans = 0
    ans += pow(inv10, d, mod) * 9 * nums * 2 % mod
    ans += (N-d-1) * pow(inv10, d+1, mod) * 81 * nums % mod
    Ans.append(ans%mod)
Ans.append(10)
print(" ".join(map(str, Ans)))