fun main(arr:Array<String>) {
    val num = readLine()!!.toInt()
    val prime = mutableMapOf<Int,Int>()
    for(i in (2..num)) {
        val ret = primeDivide(i)
        for(j in ret.keys) {
            if(prime.containsKey(j)) {
                prime[j] = prime[j]!! + ret[j]!!
            } else {
                prime[j] = ret[j]!!
            }
        }
    }
    var ans = 1L
    for(i in prime.values) {
        ans *= (i+1)
        ans %= 1000000000 + 7
    }
    println(ans)

}

fun primeDivide(num:Int):Map<Int, Int> {
    var current = num
    val divide = mutableMapOf<Int,Int>()
    var div = 2
    while (current > 1) {
        if(current % div == 0) {
            divide[div] = 0
            while (current%div == 0) {
                divide[div] = divide[div]!! + 1
                current /= div
            }
        }
        div++
    }
    return divide
}
