def max_sieve(n):
  is_prime = [True for _ in range(n+1)]
  is_prime[1] = False
  for i in range(2, n+1):
    if is_prime[i]:
      j = 2 * i
      while j <= n:
        is_prime[j] = False
        j += i
  table = [i for i in range(1, n+1) if is_prime[i]]
  return table
MOD = 998244353
N = int(input())
table = max_sieve(N)
ans = 1
for p in table[:-1]:
  now = p
  while now<=N:
    ans *= p
    ans %= MOD
    now *= p
print(ans)