using System; class B { static void Main() { var n = int.Parse(Console.ReadLine()); long r = 1, pMax = 1; var a = new int[n + 1]; for (int i = 0; i <= n; i++) a[i] = i; for (int i = 2; i <= n; i++) { var p = a[i]; r *= p; r %= M; pMax = Math.Max(pMax, p); for (int j = i; j <= n; j += i) a[j] /= p; } Console.WriteLine(r * MInv(pMax) % M); } const long M = 998244353; static long MPow(long b, long i) { long r = 1; for (; i != 0; b = b * b % M, i >>= 1) if ((i & 1) != 0) r = r * b % M; return r; } static long MInv(long x) => MPow(x, M - 2); }