import sys sys.setrecursionlimit(10 ** 6) def II(): return int(sys.stdin.readline()) def MI(): return map(int, sys.stdin.readline().split()) def LI(): return list(map(int, sys.stdin.readline().split())) def SI(): return sys.stdin.readline()[:-1] def LLI(rows_number): return [LI() for _ in range(rows_number)] def LLI1(rows_number): return [LI1() for _ in range(rows_number)] int1 = lambda x: int(x) - 1 def MI1(): return map(int1, sys.stdin.readline().split()) def LI1(): return list(map(int1, sys.stdin.readline().split())) p2D = lambda x: print(*x, sep="\n") dij = [(1, 0), (0, 1), (-1, 0), (0, -1)] def topen(a): a+=3725290298461914062 res=[] while a: a,r=divmod(a,5) res.append(r) return res[::-1] res=topen(II()) dp=[[[0]*2 for _ in range(55)] for _ in range(28)] first=True for i,d in enumerate(res): if first: if d > 2: if d+i*2<55:dp[i+1][d+i*2][0]=1 if d == 4 and 3 + i * 2<55: dp[i + 1][3 + i * 2][1] = 1 first=False continue for a in range(3,5): if i*2+a>54:break dp[i+1][i*2+a][1]+=1 for j in range(55): pre=dp[i][j][0] if pre: if j+d<55:dp[i+1][j+d][0]+=pre for a in range(d): if j+a>54:break dp[i+1][j+a][1]+=pre pre=dp[i][j][1] if pre: for a in range(5): if j+a>54:break dp[i+1][j+a][1]+=pre #p2D(dp) print(sum(dp[27][54]))