#pragma GCC optimize("Ofast") #pragma GCC target("avx2") #define MD 998244353 char d[1234567]; main(){ long n; scanf("%ld",&n); long a=1,b=1l<<~__builtin_clzl(n); long h=sqrt(n); long i=3; for(;i<=h;i+=2){ if(!d[i>>1]){ a=b; long c=1; while(c*i<=n)c*=i; b=b*c%MD; for(long j=i*i;j<=n;j+=i*2){ d[j>>1]=1; } } } for(;i<=n;i+=2){ if(!d[i>>1]){ a=b; b=b*i%MD; } } printf("%ld",a); }