#include <iostream>

using namespace std;

int prvaCifra(int x,int xLen)
{
    for(int i=0;i<xLen-1;i++)
    {
        x/=10;
    }
    return x;
}

int bezPrve(int x, int xLen)
{
    int del=1;
    for(int i=0;i<xLen-1;i++)
    {
        del*=10;
    }
    int brBezPrve;
    brBezPrve = x%del;
    return brBezPrve;
}

int finRZaCif(int cif)
{
    int sa2;
    int finRZa1=0;
    if(cif >= 5)
    {
        cif-=5;
        finRZa1++;
    }
    if(cif >= 2)
    {
        sa2 = cif / 2;
        cif-=sa2 * 2;
        finRZa1+=sa2;
    }
    if(cif >= 1)
    {
        finRZa1+=cif;
    }
    return finRZa1;
}

int main()
{
    long long v,vCpy; //vLen - broj cifara v // vCpy - kopija v // curPc - trenutna prva cifra // finR - finalno resenje //
    int vLen = 1, curPc, finR=0, vLenConst;
    cin >> v;
    vCpy = v;
    while(vCpy>9)
    {
        vCpy/=10;
        ++vLen;
    }
    vCpy = v;
    vLenConst = vLen;
    for(int i=0;i<vLenConst;i++)
    {
        curPc = prvaCifra(vCpy,vLen); //nalazenje trenutne prve cifre
        vCpy = bezPrve(vCpy, vLen); //sklanjanje te prve cifre sa broja
        finR += finRZaCif(curPc); //nalazi finalni rezultat(broj novcanica) za 1 cifru (samo ponoviti na vise cifara za finalni za ceo broj)
        vLen--;
    }
    cout << finR;
    return 0;
}