#include #include using namespace std; using ll = long long; using mint = atcoder::modint998244353; int main(){ ios::sync_with_stdio(false); cin.tie(0); int n; cin >> n; if(n == 1){ cout << "1\n"; return 0; } vector dp(n, vector(n + 1)); dp[0][1] = 1; dp[1][1] = 1; for(int i = 0; i < n; i++){ if(i + 2 < n){ for(int j = 1; j <= i + 1; j++){ dp[i + 2][j + 1] += dp[i][j]; } } if(i + 3 < n){ for(int j = 1; j <= i + 1; j++){ dp[i + 3][j + 1] += dp[i][j]; } } } vector fact(n + 1); fact[0] = 1; for(int i = 1; i <= n; i++) fact[i] = mint::raw(i) * fact[i - 1]; mint ans; for(int i = 0; i < n; i++){ mint coef = dp[n - 1][i] + dp[n - 2][i]; ans += coef * fact[i] * fact[n - i]; } cout << ans.val() << '\n'; }