import Control.Monad
import Data.List
import qualified Data.IntMap as M

-- 素数生成(無限リスト)
pr=2:q
q=3:5:7:3#q
m#(a:b:x)=[n|n<-[a^2,a^2+2..b^2-2],gcd n m<2]++(m*b)#(b:x)

-- 素因数分解 -> 結果をData.IntMapに(素因数,その数)として蓄積
fac :: [Int]->M.IntMap Int->Int->M.IntMap Int
fac _ m 1 = m
fac pa@(p:pr) m n
    |n`mod`p==0=fac pa (M.insertWith(+)p 1 m) (n`div`p)
    |True      =fac pr m n

main=do
    n<-readLn::IO Int
    print.foldl (\a n->(a*(n+1))`mod`1000000007) 1.M.elems $ foldl (fac pr) M.empty [2..n]
