#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <math.h>
#include <vector>
using namespace std;
long broj(long n)
{
    
    long brojac=0;
    for (long i = 0; n!=0; i++)
    {
        n = n/10;
        brojac++;
    }
    
    return brojac;
}  

int main()
{
    long max=0;
    long n;
    cin >> n;
    long m=broj(n);
    m=m-1;
    if(n>=5*pow(10,m))
     {
        max=5*pow(10,m);
     }
     else
      {
          if(n>=2*pow(10,m))
            max=2*pow(10,m);
      }
    if(max==0)
      max=pow(10,m);
        
    vector<long> a;   
    long d;
    long k=0;
    a.push_back(1*(pow(10,k)));
    for(long i=1;(a.back()!= max);i++)
    {
        if(i%3==0)
         k=k+1;
        if(i%3==0)
         d=1;
        if(i%3==1)
         d=2;
        if(i%3==2)
         d=5;
        a.push_back(d*(pow(10,k)));
    }
    long br=0;
    for(long i=a.size()-1;(i>=0)&&(n!=0);i--)
    {
        
        if((n-a[i])>=0)
        {
            br++;
            n=n-a[i];
            while(n-a[i]>=0)
            {
                br++;
                n=n-a[i];
            }
        }
    }
    cout <<br;
}