#include using namespace std; #define rep(i,n) for(ll i=0;i<(un)n;i++) #define repa(i,n) for(ll i=1;i<(un)n;i++) #define all(v) v.begin(), v.end() #define rall(v) v.rbegin(), v.rend() #define mod 998244353 #define dai 5000000000000000000LL #define sho -dai #define eps 1e-14 #define fi(x) cout<; using T=tuple; using vi=vector; using vs=vector; using vc=vector; using vb=vector; using vp=vector

; using sp=set

; using ss=set; using si=set; using vvi=vector; using vvs=vector; using vvb=vector; using vvc=vector; using vvp=vector; using vsi=vector>; const ll dx[4]={0,1,0,-1}; const ll dy[4]={1,0,-1,0}; const ll INF = 1e18; const ll tt=998244353; int main() { ll n; cin>>n; vvi dp(4005,vi(4005)); dp[0][0]=1; for(int i=1;i<=4000;i++){ for(int j=1;j<=4000;j++){ if(i>=j){ dp[i][j]=dp[i][j-1]+dp[i-j][min(j,i-j)]; }else{ dp[i][j]=dp[i][j-1]; } dp[i][j]%=998244353; //cout<>a>>b>>c; cout<