#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N = 1e8+10;
const ll mod = 1e8+7;
ll n;
vector<ll> Pri;
vector<ll> muls;
bitset<100000005> usp;
ll res = 1;
void init(){
usp[0] = usp[1] = 1;
for(ll i = 2; i <= n; i++){
if(!usp[i]){Pri.push_back(i);muls.push_back(i);res = res*i%mod;}
for(auto j = 0; j < Pri.size(); j++){
if(i*Pri[j]>n) break;
usp[i*Pri[j]] = 1;
if(i%Pri[j]==0){
if(i==muls[j]){
muls[j]*=Pri[j];
res*=Pri[j];
res%=mod;
}
break;
}
}
}
}
int main(){
scanf("%lld",&n);
init();
printf("%lld",res);
return 0;
}