#define rep(i, n) for (int i = 0; i < (int)(n); i++) #define ALL(v) v.begin(), v.end() typedef long long ll; #include using namespace std; const int MOD=998244353; int main(){ int n; cin>>n; int MAX=1000010; vector prime(MAX,1); prime[0]=0,prime[1]=0; for(int i=2;i*i<=MAX;i++){ if(!prime[i]) continue; for(int j=2*i;j<=MAX;j+=i) prime[j]=0; } int num; for(int i=n;i>=1;i--){ if(prime[i]){ num=i; break; } } ll ans=1; for(ll i=num-1;i>=1;i--){ if(prime[i]){ ll tmp=1; while(i*tmp<=n){ tmp=tmp*i; } ans=ans*tmp%MOD; } } cout<