import sys sys.setrecursionlimit(10**6 + 10) MOD = 998244353 S = input() N = len(S) memo = [[-1 for _ in range(6)] for _ in range(N)] def f(n,ptr,giri): if(ptr == 3):return 0 if(n == N):return 1 if(memo[n][(ptr<<1) + int(giri)] != -1):return memo[n][(ptr<<1) + int(giri)] ret = 0 if(giri): for i in range(int(S[n])): next_ptr = ptr + 1 if int("404"[ptr]) == i else 1 if i == 4 else 0 ret += f(n+1,next_ptr,False) ret %= MOD next_ptr = ptr + 1 if int("404"[ptr]) == int(S[n]) else 1 if int(S[n]) == 4 else 0 ret += f(n+1,next_ptr,True) ret %= MOD else: for i in range(10): next_ptr = ptr + 1 if int("404"[ptr]) == i else 1 if i == 4 else 0 ret += f(n+1,next_ptr,False) ret %= MOD memo[n][(ptr<<1) + int(giri)] = ret return ret print((f(0,0,True) - 1) % MOD)