#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include<string>
using namespace std;
void main()
{
int n;
while (cin >> n)
{
int i, j, k,m, l,cnt=0;
for (i = 0; i <= n; i++)
for (j = 0; j * 5 <= n - i; j++)
for (m = 0; m * 10 <= n - i - j * 5;m++)
for (k = 0; k * 25 <= n - i - j * 5-m*10; k++)
{
l = n - i - k * 25 - j * 5-m*10;
if ( i + k + j +m+ l / 50 <= 100 && l % 50 == 0)
cnt++;
}
cout << cnt << endl;
}
}
//母函数解法 转自 https://blog.youkuaiyun.com/wchyumo2009/article/details/7437212
//理解母函数:https://www.cnblogs.com/Enumz/p/3878652.html
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include<string>
using namespace std;
#define M 251
#define N 101
void main()
{
int i, j, k, l;
int num[6] = { 0, 1, 5, 10, 25, 50 };
int kind[M][N];//硬币方案数
int temp[M][N];
memset(kind, 0, sizeof(kind));
memset(temp, 0, sizeof(temp));
kind[0][0] = 1;
for (i = 1; i <= 5; i++)
{
for (j = 0; j < M; j++)//j表示总钱数
for (k = 0; k*num[i] + j < M; k++)//k表示第i种硬币的个数
for (l = 0; l + k < N; l++)//个数不超过N
temp[k*num[i] + j][l + k] += kind[j][l];
for (j = 0; j < M; j++)
for (l = 0; l < N; l++)
{
kind[j][l] = temp[j][l];
temp[j][l] = 0;
}
}
int res[M] = { 0 };
for (i = 0; i < M; i++)
for (j = 0; j < N; j++)
res[i] += kind[i][j];
int n;
while (cin >> n)
cout << res[n]<<endl;
}