def c_factors_of_factorial(N):

    def exponential_list(n):

        # ret[k]: n!を素因数分解したときのkの指数

        ret = {}

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

            current = j

            ret[j] = 0

            for k in range(2, j + 1):

                while current % k == 0:

                    ret[k] += 1

                    current //= k

            if ret[j] == 0:

                ret.pop(j)

        return ret



    exp_list = exponential_list(N)

    ans = 1

    for e in list(exp_list.values()):

        ans *= e + 1

        ans %= 10**9 + 7

    return ans



N = int(eval(input()))

print((c_factors_of_factorial(N)))
def c_factors_of_factorial(N):

    import math



    def prime_decomposition(n):

        # nを素因数分解

        from collections import defaultdict

        i = 2

        table = defaultdict(int)

        while i**2 <= n:

            while n % i == 0:

                n //= i

                table[i] += 1

            i += 1

        if n > 1:

            table[n] += 1

        return table



    exp_list = prime_decomposition(math.factorial(N))

    ans = 1

    for v in list(exp_list.values()):

        ans = (ans * (v + 1)) % (10**9 + 7)

    return ans



N = int(eval(input()))

print((c_factors_of_factorial(N)))
def c_factors_of_factorial(N):
    def exponential_list(n):
        # ret[k]: n!を素因数分解したときのkの指数
        ret = {}
        for j in range(2, n + 1):
            current = j
            ret[j] = 0
            for k in range(2, j + 1):
                while current % k == 0:
                    ret[k] += 1
                    current //= k
            if ret[j] == 0:
                ret.pop(j)
        return ret

    exp_list = exponential_list(N)
    ans = 1
    for e in list(exp_list.values()):
        ans *= e + 1
        ans %= 10**9 + 7
    return ans


N = int(eval(input()))
print((c_factors_of_factorial(N)))

def c_factors_of_factorial(N):
    import math

    def prime_decomposition(n):
        # nを素因数分解
        from collections import defaultdict

        i = 2
        table = defaultdict(int)
        while i**2 <= n:
            while n % i == 0:
                n //= i
                table[i] += 1
            i += 1
        if n > 1:
            table[n] += 1
        return table

    exp_list = prime_decomposition(math.factorial(N))
    ans = 1
    for v in list(exp_list.values()):
        ans = (ans * (v + 1)) % (10**9 + 7)
    return ans


N = int(eval(input()))
print((c_factors_of_factorial(N)))

-    def exponential_list(n): -        # ret[k]: n!を素因数分解したときのkの指数 -        ret = {} -        for j in range(2, n + 1): -            current = j -            ret[j] = 0 -            for k in range(2, j + 1): -                while current % k == 0: -                    ret[k] += 1 -                    current //= k -            if ret[j] == 0: -                ret.pop(j) -        return ret +    import math -    exp_list = exponential_list(N) +    def prime_decomposition(n): +        # nを素因数分解 +        from collections import defaultdict + +        i = 2 +        table = defaultdict(int) +        while i**2 <= n: +            while n % i == 0: +                n //= i +                table[i] += 1 +            i += 1 +        if n > 1: +            table[n] += 1 +        return table + +    exp_list = prime_decomposition(math.factorial(N)) -    for e in list(exp_list.values()): -        ans *= e + 1 -        ans %= 10**9 + 7 +    for v in list(exp_list.values()): +        ans = (ans * (v + 1)) % (10**9 + 7)