# https://yukicoder.me/problems/no/3242 MOD = 998244353 def main(): N = input() dp = [[0] * 2 for _ in range(2)] dp[0][0] = 1 for nstrs in N: n = int(nstrs) new_dp = [[0] * 2 for _ in range(2)] for less in range(2): for contains_8 in range(2): value = dp[less][contains_8] if less == 0: for k in range(n + 1): new_less = (0 if n == k else 1) new_contains_8 = contains_8 | (1 if k == 8 else 0) new_dp[new_less][new_contains_8] += value new_dp[new_less][new_contains_8] %= MOD else: for k in range(10): new_less = 1 new_contains_8 = contains_8 | (1 if k == 8 else 0) new_dp[new_less][new_contains_8] += value new_dp[new_less][new_contains_8] %= MOD dp = new_dp answer = 0 for less in range(2): answer += dp[less][1] answer %= MOD print(answer) if __name__ == "__main__": main()