#include <bits/stdc++.h> using namespace std; #define rep(i,n) for(int i=0; i<(n); i++) #define INF ((1LL<<62)-(1LL<<31)) #define all(a) (a).begin(),(a).end() #define rall(a) (a).rbegin(),(a).rend() typedef long long ll; typedef pair<ll,ll> pl; const ll mod=998244353; int f(ll num) { int cnt=0; while(num>=10) { num/=10; cnt++; } return cnt; } int main() { ll n; cin >> n; ll len=4*n; vector<vector<vector<ll>>> dp(n,vector<vector<ll>> (len,vector<ll> (n,0))); for(int i=1;i<len;i++) dp[0][i][f(i)]=1; for(int i=0;i<n-1;i++) { rep(j,len) rep(k,n) { for(int l=1;l<=1000;l*=10) { if(j+l<len&&k+f(l)<n) dp[i+1][j+l][k+f(l)]=(dp[i+1][j+l][k+f(l)]+dp[i][j][k])%mod; if(j+l*10<len&&k+f(l)<n) dp[i+1][j+l*10][k+f(l)]=(dp[i+1][j+l*10][k+f(l)]+(-dp[i][j][k]+mod)%mod)%mod; } } rep(j,n) for(int k=1;k<len;k++) dp[i+1][k][j]=(dp[i+1][k][j]+dp[i+1][k-1][j])%mod; } ll ans=0; for(int i=0;i<n;i++) { if(2*n-1+i<len) ans=(ans+dp[n-1][2*n-1+i][i])%mod; } cout << ans << endl; return 0; }