#include <iostream>
#include <boost/multiprecision/cpp_int.hpp>
using namespace std;
using namespace boost::multiprecision;
int main()
{
const cpp_int M=1000000007;
cpp_int lcm(cpp_int,cpp_int),rlcm(cpp_int,cpp_int);
cpp_int n;
cin>>n;
cout<<rlcm(1,n)%M;
return 0;
}
cpp_int lcm(cpp_int a,cpp_int b)
{ cpp_int c,a1,b1;
a1=a;
b1=b;
while(b!=0)
{ c=a;
a=b;
b=c%b;
}
return a1*(b1/a);
}
cpp_int rlcm(cpp_int f,cpp_int l)
{
cpp_int lcm(cpp_int,cpp_int);
cpp_int c=f+1;
for(;c<=l;c++)
{
f=lcm(f,c);
}
return f;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Ym9vc3QvbXVsdGlwcmVjaXNpb24vY3BwX2ludC5ocHA+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp1c2luZyBuYW1lc3BhY2UgYm9vc3Q6Om11bHRpcHJlY2lzaW9uOwoKaW50IG1haW4oKQp7CiAgICBjb25zdCBjcHBfaW50IE09MTAwMDAwMDAwNzsKICAgIGNwcF9pbnQgbGNtKGNwcF9pbnQsY3BwX2ludCkscmxjbShjcHBfaW50LGNwcF9pbnQpOwogICAgY3BwX2ludCBuOwogICAgY2luPj5uOwogICAgY291dDw8cmxjbSgxLG4pJU07CiAgICByZXR1cm4gMDsKfQoKY3BwX2ludCBsY20oY3BwX2ludCBhLGNwcF9pbnQgYikKeyAgIGNwcF9pbnQgYyxhMSxiMTsKICAgIGExPWE7ICAgCiAgICBiMT1iOwogICAgd2hpbGUoYiE9MCkKICAgIHsgIGM9YTsKICAgICAgIGE9YjsKICAgICAgIGI9YyViOwogICAgfQogICAgcmV0dXJuIGExKihiMS9hKTsKfQoKY3BwX2ludCBybGNtKGNwcF9pbnQgZixjcHBfaW50IGwpCnsgICAKICAgIGNwcF9pbnQgbGNtKGNwcF9pbnQsY3BwX2ludCk7CiAgICBjcHBfaW50IGM9ZisxOwogICAgZm9yKDtjPD1sO2MrKykKICAgIHsKICAgICAgICBmPWxjbShmLGMpOwogICAgfQoKICAgIHJldHVybiBmOwp9