import java.util.*
import java.math.*
import java.lang.Math.*

val readString: ()->String = {readLine()!!}
val readInt: ()->Int = {readLine()!!.toInt()}
val readLong: ()->Long = {readLine()!!.toLong()}
val readIntArray: ()->IntArray = {readLine()!!.split(' ').map{it.toInt()}.toIntArray()}
val readLongArray: ()->LongArray = {readLine()!!.split(' ').map{it.toLong()}.toLongArray()}
val errPrintln: (String)->Unit = {msg -> System.err.println(msg)}
val MOD = 1e9.toLong()+7
val INF = Int.MAX_VALUE/2
val LINF = Long.MAX_VALUE/2
data class IntPair(val first: Int, val second: Int)
data class To(val idx: Int, val cost: Long)


fun primeFactorize(N: Int): Map<Int, Int> {
    if (N <= 1) return mapOf()
    val fact = mutableMapOf<Int, Int>()
    var n = N
    var i = 2
    while (i * i <= n) {
        while (n%i == 0) {
            fact[i] = (fact[i] ?: 0) + 1
            n /= i
        }
        i++
    }
    if (n != 1) {
        fact[n] = (fact[n] ?: 0) + 1
    }
    return fact
}


fun solve(N: Int): Int {
    var mp = mutableMapOf<Int, Int>()
    for (n in 2..N) {
        primeFactorize(n).forEach { kv ->
            mp[kv.key] = (mp[kv.key] ?: 0) + kv.value
        }
    }

    val hs = ArrayList<Int>()
    hs.addAll(mp.values)

    var ans = 0
    fun dfs(n: Int, res: Long) {
        if (n >= hs.size) {
            if (res == 75L) ans++
            return
        }

        if (res > 75L) return

        for (i in 0..hs[n]) {
            dfs(n+1, res*(i+1))
        }
    }

    dfs(0, 1L)

    return ans
}


fun main(args: Array<String>) {
    val N = readInt()

    val ans = solve(N)

    println(ans)
}
