#include <bits/stdc++.h>
using namespace std;
long long modexpo(long long a, long long b) {
  long long res = 1;
  while (b > 0) {
    if (b & 1) res = (res * a) % 1000000007;
    a = (a * a) % 1000000007;
    b >>= 1;
  }
  return res;
}
long long expo(long long a, long long b) {
  long long res = 1;
  while (b > 0) {
    if (b & 1) res = (res * a);
    a = (a * a);
    b >>= 1;
  }
  return res;
}
long long gcd(long long a, long long b) {
  if (a == 0) return b;
  return gcd(b % a, a);
}
bool isPrime(long long n) {
  if (n <= 1) return false;
  if (n <= 3) return true;
  if (n % 2 == 0 || n % 3 == 0) return false;
  for (int i = 5; i * i <= n; i += 6) {
    if ((n % i == 0) || (n % (i + 2) == 0)) return false;
  }
  return true;
}
long double dist(long long x1, long long y1, long long x2, long long y2) {
  return (long double)sqrt(
      (long double)((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)));
}
long long squaredist(long long x1, long long y1, long long x2, long long y2) {
  return ((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
}
long long nCr(long long n, long long r) {
  if (r == 0) return 1;
  return (n * nCr(n - 1, r - 1)) / r;
}
int main() {
  vector<long long> temp(13, 0);
  for (int len = 1; len <= 12; len++) {
    set<long long> second;
    for (int i = 0; i <= len; i++) {
      for (int j = 0; j + i <= len; j++) {
        for (int k = 0; (i + j + k) <= len; k++) {
          int l = len - i - j - k;
          if (second.find((i + j * 5 + k * 10 + l * 50)) == second.end())
            second.insert((i + j * 5 + k * 10 + l * 50));
        }
      }
    }
    temp[len] = second.size();
  }
  long long n;
  cin >> n;
  if (n <= 12)
    cout << temp[n] << endl;
  else {
    cout << temp[12] + (n - 12) * 49 << endl;
  }
  return 0;
}
