#include <iostream>
#include <cmath>

using namespace std;

int niz[3] = {5,2,1}, tempbrNovcanica = 0, stepen = 0, koeficijent = 0, brNovcanica = 0, k = 0;
unsigned long long desetNaStepen = 0, novac = 0;

int main()
{

    //while(1){

    tempbrNovcanica = 0, stepen = 0, koeficijent = 0, brNovcanica = 0, k = 0;

    desetNaStepen = 0, novac = 0;

    cin >> novac;

    while(novac >= 10){
        k++;
      //  cout << novac << endl;

        stepen = floor(log(novac) / log(10));
       // cout << "Stepen " << stepen << endl;

        if(stepen > 14){
            unsigned long long tempCash = novac / 100000000000;
           // cout << "TempCash " << tempCash << endl;

            stepen = floor(log(tempCash) / log(10));
           // cout << "Stepen " << stepen << endl;

            desetNaStepen = 10;

            for(int i = 1; i < stepen;i++){
                desetNaStepen *= 10;
            }

            //cout << "done  "  << desetNaStepen << endl;

            koeficijent = tempCash / desetNaStepen;

            //cout << "koeficijent "  << koeficijent << endl;

            for(int i = 0; i < 3;i++){
                if(koeficijent >= niz[i]){
                    koeficijent = niz[i];
                    break;
                }
            }

            //cout << "koeficijent "  << koeficijent << endl;

            tempbrNovcanica = tempCash / (koeficijent * desetNaStepen);

            brNovcanica += tempbrNovcanica;

            //cout << "brNovcanica "  << brNovcanica << endl;

            novac -= koeficijent * desetNaStepen * tempbrNovcanica * 100000000000;
        }else{

            desetNaStepen = 10;

            for(int i = 1; i < stepen;i++){
                desetNaStepen *= 10;
            }

            //cout << "done  "  << desetNaStepen << endl;

            koeficijent = novac / desetNaStepen;

            //cout << "koeficijent "  << koeficijent << endl;

            for(int i = 0; i < 3;i++){
                if(koeficijent >= niz[i]){
                    koeficijent = niz[i];
                    break;
                }
            }

            //cout << "koeficijent "  << koeficijent << endl;

            tempbrNovcanica = novac / (koeficijent * desetNaStepen);

            brNovcanica += tempbrNovcanica;

            //cout << "brNovcanica "  << brNovcanica << endl;

            novac -= koeficijent * desetNaStepen * tempbrNovcanica;

            //cout << "ostatak "  << novac << " oduzimac " << tempbrNovcanica << " * " << koeficijent * desetNaStepen <<  endl << endl << endl;
        }
    }

    for(int i = 0; i < 3;i++){
            //cout << novac << endl;

            if(novac >= niz[i]){
                tempbrNovcanica = novac / niz[i];
                novac -= tempbrNovcanica * niz[i];
                brNovcanica += tempbrNovcanica;
                //cout << "Oduzeto: " << tempbrNovcanica << " * " << niz[i] << " i ostalo je " << novac << endl;
                if(novac == 0)
                    break;
            }
        }

    //cout << "Ukupan broj potrebnih novacnica je " <<  brNovcanica << "  " << k << endl;

    //}

    cout << brNovcanica;

    return 0;
}

// 999 999 999 999 999 999
// 999999999999999999
// 18000000000000000000
// 18446744000000000000
//1800000000000