#include <iostream>
#include <math.h>

using namespace std;

int izbrojCifre(long long unsigned n)
{
    return floor(log10(n) + 1);
}

int prvaCifra(long long unsigned n)
{
while(n >= 10)
   {
       n= n / 10;
   }
return (int)n ;
}

int main(int argc, const char * argv[])
{
    long long unsigned int V, cifre, X=0,sum=0,ostalo,najveci;
    int prva;
    
    cin>> V;
    ostalo = V;
    cifre = izbrojCifre(V) ;
    prva = prvaCifra(V) ;
    najveci = pow(10,( (double)cifre-1));
    while(ostalo!=0){
    if (prva>=5)
        {
            X= X + 5*najveci;
            ostalo = ostalo - 5*najveci;
            sum ++;
            prva=prvaCifra(ostalo);
            cifre = izbrojCifre(ostalo) ;
            najveci = (long long unsigned int)pow(10, ((double)cifre-1));
            continue;
        }
   
    if (prva>=2)
    {
        X= X + 2*najveci;
        ostalo = ostalo - 2*najveci;
        sum ++;
        prva=prvaCifra(ostalo);
        cifre = izbrojCifre(ostalo) ;
        najveci =(long long unsigned int) pow(10, ((double)cifre-1));
        continue;
    }
    if (prva==1)
    {
        X= X + najveci;
        ostalo = ostalo - najveci;
        sum ++;
        prva=prvaCifra(ostalo);
        cifre = izbrojCifre(ostalo) ;
        najveci = (long long unsigned int)pow(10, ((double)cifre-1));
        continue;
    }
        
    }
    cout<<sum;
        return 0;
}