def kaijo(n):

    k=1

    for i in range(n):

        k*=i+1

    return k

def yaku(n):

    b=2

    l=[]

    while n>1:

        while n%b==0:

            l.append(b)

            n//=b

        b+=1

    ls=set(l)

    ans=[(i,l.count(i)) for i in ls]

    return ans

            



def resolve():

    n=int(eval(input()))

    l=yaku(kaijo(n))

    s=1

    for i in l:

        s*=i[1]+1

    print((s%(10**9+7)))



resolve()
def soin(n):

	ans=[]

	l=int(n**0.5)+1

	for i in range(2,l+1):

		if n%i==0:

			a=[i,0]

			while n%i==0:

				n//=i

				a[1]+=1

			ans+=[a]

	if n>1:

		ans+=[[n,1]]

	return ans

d={}

n=int(eval(input()))

for i in range(2,n+1):

	a=soin(i)

	for j in a:

		if j[0] in d:

			d[j[0]]+=j[1]

		else:

			d[j[0]]=j[1]

k=1

for i in list(d.values()):

	k*=(i+1)

print((k%(10**9+7)))
def kaijo(n):
    k = 1
    for i in range(n):
        k *= i + 1
    return k


def yaku(n):
    b = 2
    l = []
    while n > 1:
        while n % b == 0:
            l.append(b)
            n //= b
        b += 1
    ls = set(l)
    ans = [(i, l.count(i)) for i in ls]
    return ans


def resolve():
    n = int(eval(input()))
    l = yaku(kaijo(n))
    s = 1
    for i in l:
        s *= i[1] + 1
    print((s % (10**9 + 7)))


resolve()

def soin(n):
    ans = []
    l = int(n**0.5) + 1
    for i in range(2, l + 1):
        if n % i == 0:
            a = [i, 0]
            while n % i == 0:
                n //= i
                a[1] += 1
            ans += [a]
    if n > 1:
        ans += [[n, 1]]
    return ans


d = {}
n = int(eval(input()))
for i in range(2, n + 1):
    a = soin(i)
    for j in a:
        if j[0] in d:
            d[j[0]] += j[1]
        else:
            d[j[0]] = j[1]
k = 1
for i in list(d.values()):
    k *= i + 1
print((k % (10**9 + 7)))

-def kaijo(n): -    k = 1 -    for i in range(n): -        k *= i + 1 -    return k - - -def yaku(n): -    b = 2 -    l = [] -    while n > 1: -        while n % b == 0: -            l.append(b) -            n //= b -        b += 1 -    ls = set(l) -    ans = [(i, l.count(i)) for i in ls] +def soin(n): +    ans = [] +    l = int(n**0.5) + 1 +    for i in range(2, l + 1): +        if n % i == 0: +            a = [i, 0] +            while n % i == 0: +                n //= i +                a[1] += 1 +            ans += [a] +    if n > 1: +        ans += [[n, 1]] -def resolve(): -    n = int(eval(input())) -    l = yaku(kaijo(n)) -    s = 1 -    for i in l: -        s *= i[1] + 1 -    print((s % (10**9 + 7))) - - -resolve() +d = {} +n = int(eval(input())) +for i in range(2, n + 1): +    a = soin(i) +    for j in a: +        if j[0] in d: +            d[j[0]] += j[1] +        else: +            d[j[0]] = j[1] +k = 1 +for i in list(d.values()): +    k *= i + 1 +print((k % (10**9 + 7)))