#include #include #include using namespace atcoder; using mint = modint998244353; using namespace std; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf32 1000000001 #define Inf64 1000000000000000001 int main(){ string s; cin>>s; vector dp(2,vector(3,0)); dp[0][0] = 1; string t = "404"; rep(i,s.size()){ int d = s[i]-'0'; vector ndp(2,vector(3,0)); rep(j,2){ rep(k,3){ rep(l,10){ if(j==0 && l>d)continue; int nj = j; if(l < d)nj = 1; int nk; if(t[k]-'0'==l)nk = k+1; else if(l==4)nk = 1; else nk = 0; if(nk==3)continue; ndp[nj][nk] += dp[j][k]; } } } swap(dp,ndp); } mint ans = 0; rep(i,2)rep(j,3)ans += dp[i][j]; ans--; cout<