#include <bits/stdc++.h>
using namespace std;
long long arr[1000];
long long seg[1000005];
long long gcd(long long a, long long b) {
  if (b == 0) {
    return a;
  }
  return gcd(b, a % b);
}
void buildtree(long long start, long long end, long long treenode) {
  if (start == end) {
    seg[treenode] = arr[start];
    return;
  }
  long long mid = (start + end) / 2;
  buildtree(start, mid, 2 * treenode);
  buildtree(mid + 1, end, 2 * treenode + 1);
  seg[treenode] = gcd(seg[2 * treenode], seg[2 * treenode + 1]);
  return;
}
long long query(long long left, long long right, long long start, long long end,
                long long treenode) {
  long long mid = (start + end) / 2;
  if (start > right || end < left) {
    return 0;
  }
  if (start >= left && end <= right) {
    return seg[treenode];
  }
  long long ans = gcd(query(left, right, start, mid, 2 * treenode),
                      query(left, right, mid + 1, end, 2 * treenode + 1));
  return ans;
}
bool check(long long n, long long k) {
  long long num1 = n;
  long long sum1 = 0;
  long long sum2 = 0;
  while (n > 0) {
    if (n >= k) {
      n = n - k;
      sum1 += k;
    } else {
      sum1 += n;
      n = 0;
      break;
    }
    if (n < 10) {
      continue;
    }
    sum2 += n / 10;
    n = n - n / 10;
  }
  return sum1 >= sum2;
}
long long dp[101][101][101];
int solvedp(long long i, long long j, long long* pref, long long* suf,
            long long B, long long* arr) {
  if (i == j) {
    return 0;
  }
  if (B < 0) {
    return INT_MIN;
  }
  if (dp[i][j][B] != -1) {
    return dp[i][j][B];
  }
  long long ans = 0;
  for (int k = i + 1; k < j - 1; k++) {
    if (i == 0) {
      if (!pref[k] && !suf[k + 1]) {
        ans = max((long long)1 + solvedp(k + 1, j, pref, suf,
                                         B - abs(arr[k + 1] - arr[k]), arr),
                  ans);
      }
    } else {
      if (!(pref[k] - pref[i - 1]) && !suf[k + 1]) {
        ans = max((long long)1 + solvedp(k + 1, j, pref, suf,
                                         B - abs(arr[k + 1] - arr[k]), arr),
                  ans);
      }
    }
  }
  dp[i][j][B] = ans;
  return dp[i][j][B];
}
map<string, int> m1;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long n;
  cin >> n;
  vector<int> a = {0, 4, 10, 20, 35, 56, 83, 116, 155, 198, 244, 292};
  if (n < a.size())
    cout << a[n];
  else
    cout << a[11] + 49 * (n - 11);
  return 0;
}
