# Program to compute minimum number of coins needed

# A min function that uses values of Infinity
def minWithInfinity(L):
    
    min = Infinity
    for item in L:
        if min == Infinity and item != Infinity:
            min = item;
        elif min != Infinity and item != Infinity and item < min:
            min = item
    return min

# The recursive function
def change(a):
# New 
    if a in memoDictionary:
        return memoDictionary[a]
#

    if a in [25,10,5,1]:
        count = 1
    elif a < 1:
        count = Infinity
    else:
        count = 1 + minWithInfinity([change(a-25),
                                    change(a-10),
                                    change(a-5),
                                    change(a-1)])
# New
    memoDictionary[a] = count
#
    return count
    

# Main program
Infinity = -1

# New
memoDictionary = {}
#

input = raw_input("Enter amount: ")
n = int(input)

numberOfCoins = change(n)
print "The number of coins needed to make",n,"cents is",numberOfCoins
