#include using namespace std; using pii = pair; using ll = long long; const int N = 2000010, MOD = 998244353, INF = 0x3f3f3f3f; int n, m, w[N]; void solve() { scanf("%d", &n); if (n == 1) { puts("1"); return; } vector > f(n + 1, vector(n + 1)); vector fac(n + 1); fac[0] = 1; for (int i = 1; i < n + 1; i++) fac[i] = fac[i - 1] * i % MOD; f[1][1] = f[2][1] = 1; for (int i = 3; i < n + 1; i++) for (int j = 2; j <= i; j++) f[i][j] = (f[i - 2][j - 1] + f[i - 3][j - 1]) % MOD; ll res = 0; for (int i = 1; i < n + 1; i++) { res = (res + (f[n][i] + f[n - 1][i]) * fac[i] % MOD * fac[n - i]) % MOD; } printf("%lld\n", res); } int main() { int T = 1; // scanf("%d", &T); while (T--) solve(); return 0; }