import std.stdio, std.string, std.conv, std.algorithm, std.range;

enum po = cast(ulong)1_000_000_007;

int[] factorize(int n) {
    auto c = 2;
    auto res = new int[0];
    while (c <= n) {
        if (n % c == 0) {
            res ~= c;
            n /= c;
            continue;
        }
        c++;
    }
    if (n > 1) res ~= n;
    return res;
};

void main() {
    auto N = readln.chomp.to!int;
    auto primes = new int[0];
    if (N == 1) {
        writeln(1);
        return;
    }
    foreach (i; 2..N+1) {
        primes ~= factorize(i);
    }
    primes.sort().group.map!(a => cast(ulong)(a[1]+1)).reduce!((a,b) => a * b % po).writeln;
}