#include long long int dp[1003][1003]; long long int fact[1003]; int main() { long long int n; scanf("%lld", &n); const long long int p = 998244353; long long int i, j; for (i = 0; i <= n; i++) for (j = 0; j <= n; j++) dp[i][j] = 0; dp[0][1]++; dp[1][1]++; for (i = 0; i < n; i++) { if (i + 2 < n) { for (j = 0; j < n; j++) dp[i + 2][j + 1] = (dp[i + 2][j + 1] + dp[i][j]) % p; } if (i + 3 < n) { for (j = 0; j < n; j++) dp[i + 3][j + 1] = (dp[i + 3][j + 1] + dp[i][j]) % p; } } fact[0] = 1; for (i = 1; i <= n; i++) fact[i] = fact[i - 1] * i % p; long long int cnt, ans = 0; for (i = n - 2; i < n; i++) { if (i < 0) continue; for (j = 0; j <= n; j++) { cnt = dp[i][j]; cnt = cnt * fact[j] % p; cnt = cnt * fact[n - j] % p; ans = (ans + cnt) % p; } } printf("%lld\n", ans); return 0; }