#include<iostream>
#include<math.h>
using namespace std;

long long izr(long long V,long long nov[],long long N){
	long long kon=0,n,v=V;
	
	for(long long i=0;i<N;i++){
		n=(v/nov[i]);
		v-=(n*nov[i]);	
		kon+=n;	
	}
	return kon;
}

long long factorial(long long n)
{
    if(n > 1)
        return n * factorial(n - 1);
    else
        return 1;
}

long long nV(long long n) //izracunava broj cifara u V
{ 
    int count = 0; 
    while (n != 0) { 
        n = n / 10; 
        ++count; 
    }
    return count; 
} 
  

int main(){
	long long V;
	
	int d[]={1,2,5};//d vrednosti
	
	cin>>V;//unos V
	int k_krajnji=nV(V)-1;//koji cemo k koristiti kao krajnji
	
	long long nNov=3*(k_krajnji+1);//broj novcanica koje koristimo	i mora +1 zbog nule
	long long Nov[nNov];
	long long iterator=0;
	
	for(long long i=k_krajnji;i>=0;i--){
		for(int j=2;j>=0;j--){
			Nov[iterator]=d[j]*pow(10,i);
			iterator++;
		}
	}
	cout<<izr(V,Nov,nNov);
	return 1;
}