#include #include #include #include #include using i64 = int64_t; using mint = atcoder::modint998244353; template T read() { T v; std::cin >> v; return v; } int main() { const i64 n = read(); assert(n <= 100000000); std::vector dp(n + 1, 0); dp[1] = 1; for (i64 i = 1; i < n; ++i) { const mint v = dp[i]; std::vector pos{i + 1, i + 2, i + 3, 2 * i, 3 * i}; for (const i64 x : pos) { if (x <= n) { dp[x] += v; } } } std::cout << dp[n].val() << std::endl; return 0; }