#include <bits/stdc++.h>

using namespace std;
#define pb push_back
#define mp make_pair
#define all(x) (x).begin(),(x).end()
#define rep(i,n) for(int i=0;i<(n);i++)
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
constexpr int dx[] = {1, 0, -1, 0, 1, 1, -1, -1};
constexpr int dy[] = {0, -1, 0, 1, 1, -1, -1, 1};

template <typename T> ostream &operator<<(ostream &os, const vector<T> &vec){os << "["; for (const auto &v : vec) {os << v << ","; } os << "]"; return os; }
template <typename T, typename U> ostream &operator<<(ostream &os, const pair<T, U> &p) {os << "(" << p.first << ", " << p.second << ")"; return os;}

vector<int> facts;

bool isok(vector<pii> &P) {
    for(int i = 0; i < P.size(); i++){
        if (facts[P[i].first] < P[i].second) {
            return false;
        }
    }
    return true;
}

void solve() {
    vector<int> isprime(101);
    for(int i = 2; i <= 100; i++) {
        bool ok = true;
        for(int j = 2; j < i; j++) {
            if (i % j == 0) {
                ok = false;
            }
        }
        isprime[i] = ok;
    }

    vector<int> primes;
    for (int i = 0; i < isprime.size(); i++) {
        if (isprime[i]) {
            primes.push_back(i);
        }
    }

    int N;
    cin >> N;

    facts.resize(101);
    for(int i = 1; i <= N; i++) {
        int now = i;
        for(int j = 0; j < primes.size(); j++) {
            if (now % primes[j] == 0) {
                while(now % primes[j] == 0) {
                    now /= primes[j];
                    facts[primes[j]]++;
                } 
            }
        }
        if (now > 1) {
            facts[now]++;
        }
    }


    int n = primes.size();
    int ans = 0;
    for(int i = 0; i < n; i++) {
        for(int j = 0; j < i; j++) {
            for(int k = 0; k < j; k++) {
                vector<pii> P1 = {{primes[i], 2}, {primes[j], 4}, {primes[k], 4}};
                vector<pii> P2 = {{primes[i], 4}, {primes[j], 2}, {primes[k], 4}};
                vector<pii> P3 = {{primes[i], 4}, {primes[j], 4}, {primes[k], 2}};
                if (isok(P1)) {
                    ans++;
                }
                if (isok(P2)) {
                    ans++;
                }
                if (isok(P3)) {
                    ans++;
                }
            }
        }
    }
    for(int i = 0; i < n; i++) {
        for(int j = 0; j < i; j++) {
            vector<pii> P1 = {{primes[i], 14}, {primes[j], 4}};
            vector<pii> P2 = {{primes[i], 4}, {primes[j], 14}};
            vector<pii> P3 = {{primes[i], 24}, {primes[j], 2}};
            vector<pii> P4 = {{primes[i], 2}, {primes[j], 24}};
            if (isok(P1)) {
                ans++;
            }
            if (isok(P2)) {
                ans++;
            }
            if (isok(P3)) {
                ans++;
            }
            if (isok(P4)) {
                ans++;
            }
        }
    }

    for (int i = 0; i < n; i++) {
        vector<pii> P1 = {{primes[i], 74}};
        if (isok(P1)) {
            ans++;
        }
    }
    cout << ans << endl;
    
}

int main() {
    std::cin.tie(0);
    std::ios::sync_with_stdio(false);
    cout.setf(ios::fixed);
    cout.precision(16);
    solve();
    return 0;
}

Measured memory_bytes: 256