var toInt = x=>parseInt(x,10);
var toIntArr = arr=>arr.map(x=>toInt(x));
var abs = x=>x>0?x:-x;
function min(){var rest = arguments,val=rest[0];for(var i=1;i<rest.length;i++)if(rest[i]<val)val = rest[i];return val}
function max(){var rest = arguments,val=rest[0];for(var i=1;i<rest.length;i++)if(rest[i]>val)val = rest[i];return val}
Main(require("fs").readFileSync("/dev/stdin", "utf8"));
 
function Main(input){
	var input = input.split('\n');
	var n = toInt(input[0]);
	var ans = 0;

	function prime(n) {
	//n未満の素数を配列で返す。
		var ps, x, flg, j;
		ps = [2, 3];
		for(x = 5; x < n; x += 2) {
			flg = 0;
			for(j = 0; ps[j] * ps[j] <= x; j++) {
				if(x % ps[j] == 0) {
					flg = 1;
					break;
				}
			}
			if(flg == 0) {
				ps.push(x);
			}
		}
		return ps;
	}
	var primes = prime(100); //length 25
	var pows = []; //sisuu
	var a,b,c,d,p,q,r,s;
	var to = {};
	to[75] = 0;
	to[25] = 0;
	to[15] = 0;
	to[5] = 0;
	to[3] = 0;
	for(var i = 0; i < 25; i++){
		p = primes[i];
		a = 0;
		for(var j = 1; j <= n; j++){
			q = j
			while(q%p === 0){
				a++;
				q /= p;
			}
		}
		a++;

		pows[i] = a;

		if(a>74) to[75]++;
		if(a>24) to[25]++;
		if(a>14) to[15]++;
		if(a>4) to[5]++;
		if(a>2) to[3]++;
	}
	//console.log(pows);

	ans = to[75] + to[25]*(to[3] - 1) + to[15]*(to[5] - 1) + to[5]*(to[5] - 1)*(to[3] - 2)/2;




	console.log(ans);
}