// // Created by zeronosu77108 on 2021/02/17. // import kotlin.collections.* import kotlin.math.* @kotlin.ExperimentalStdlibApi fun main() { val n = readLine()!!.toInt() val primes = mutableListOf() val sieve = Array(n+1) { it.toLong() } for (i in 2 .. n.toLong()) { if (sieve[i.toInt()] == i) primes.add(i) for (p in primes) { if (i*p > n) break sieve[(i*p).toInt()] = p } } var ans = 1L for (p in primes.dropLast(1)) { var q = p; while (q*p <= n) q*=p ans *= q % 998244353 ans %= 998244353 } println(ans) }