#include <bits/stdc++.h>

using namespace std;
int mini= 100000000;
int odrediK(long long v){
    int k=0;
    int m=v;
    while(v>9){
        k++;
        v=v/10;
    }
    return k;

}
int isplata(long long v,long long sum,int minit,int a[]){
    if(sum==v){
        if(minit<mini){
            mini=minit;
        }
    }
    else{
        for(int i=0;i<3;i++){
            int k=odrediK(v-sum);
            if(a[i]*pow(10,k)+sum<=v){
                sum+=a[i]*pow(10,k);
                minit=minit+1;
                isplata(v,sum,minit,a);
            }
        }
    }
}
bool nule(int n){
  while(n>9){
    if((n%10)!=0)
        return false;
    n=n/10;
 }
  return true;
}

int main()
{
   ios::sync_with_stdio(false);
   long long v;
   cin >> v;
   int a[3]={5,2,1};
   int c=v;
   if(nule(c)){
    if(c==1||c==2||c==5)
        cout << "1" << '\n';
    if(c==3||c==4||c==6||c==7)
        cout << "2" << '\n';
    if(c==8||c==9)
        cout << "3" << '\n';

   }
   else{
   isplata(v,0,0,a);
   cout << mini << '\n';
   }
   return 0;
}