from functools import cache MOD = 998244353 S = input() N = len(S) FZF = "404" @cache def f(n, NG, giri): if(NG == 3):return 0 if(n == N):return 1 ret = 0 if(giri): for i in range(int(S[n])+1): next_NG = NG+1 if i == int(FZF[NG]) else 1 if i == 4 else 0 ret += f(n+1, next_NG, i == int(S[n])) ret %= MOD else: if(NG == 0): ret += f(n+1, 0, False) * 9 ret += f(n+1, 1, False) ret %= MOD elif(NG == 1): ret += f(n+1, 0, False) * 8 ret += f(n+1, 1, False) ret += f(n+1, 2, False) ret %= MOD else: ret += f(n+1, 0, False) * 9 ret %= MOD return ret print((f(0, 0, True) - 1) % MOD)