#include <bits/stdc++.h>   using namespace std;   mt19937_64 mt(time(0));   set<pair<long long, long long> > dp[49];   void insert(set<pair<long long, long long> >& table, long long a, long long b) {     if (table.empty()) {       table.insert({a, b});       return;     }     auto it = table.lower_bound({b, LLONG_MAX});     while (it != table.begin()) {       it--;       if (it->second < a) break;       a = min(it->first, a);       b = max(it->second, b);       if (it == table.begin()) {         table.erase(it);         break;       } else {         table.erase(it++);       }     }     table.insert({a, b});   }   int main() {     ios::sync_with_stdio(false);     cin.tie(0);     cout.tie(0);     cout.precision(10);     cout << fixed;     long long n;     cin >> n;     for (int i = 0; i <= min(48LL, n); i++) {       for (int j = 0; j <= 8 && i + j <= n; j++) {         int tmp = i * 9 + j * 4;         long long a = tmp / 49;         long long b = n - i - j + tmp / 49;         insert(dp[tmp % 49], a, b);       }     }     long long ret = 0;     for (int i = 0; i < 49; i++) {       for (auto item : dp[i]) {         ret += item.second - item.first + 1;       }     }     cout << ret << endl;     return 0;   }   